<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Org.Mentalis.Security</name>
    </assembly>
    <members>
        <member name="T:Org.Mentalis.Security.Certificates.Certificate">
            <summary>
            Defines a X509 v3 encoded certificate.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromPfxFile(System.String,System.String)">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by opening a PFX file and retrieving the first certificate from it.
            </summary>
            <param name="file">The full path to the PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <returns>One of the certificates in the PFX file.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading certificates from the specified file.</exception>
            <remarks>
            Warning: this method returns the first Certificate it can find in the specified PFX file.
            Care should be taken to verify whether the correct Certificate instance is returned
            when using PFX files that contain more than one certificate.
            For more fine-grained control over which certificate is returned, use
            the CertificateStore.CreateFromPfxFile method to instantiate a CertificateStore object
            and then use the CertificateStore.FindCertificateBy*** methods.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromPfxFile(System.String,System.String,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by opening a PFX file and retrieving the first certificate from it.
            </summary>
            <param name="file">The full path to the PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <param name="exportable"><b>true</b> if the private keys associated with the certificates should be marked as exportable, <b>false</b> otherwise.</param>
            <returns>One of the certificates in the PFX file.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading certificates from the specified file.</exception>
            <remarks>
            Warning: this method returns the first Certificate it can find in the specified PFX file.
            Care should be taken to verify whether the correct Certificate instance is returned
            when using PFX files that contain more than one certificate.
            For more fine-grained control over which certificate is returned, use
            the CertificateStore.CreateFromPfxFile method to instantiate a CertificateStore object
            and then use the CertificateStore.FindCertificateBy*** methods.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromPfxFile(System.String,System.String,System.Boolean,Org.Mentalis.Security.Certificates.KeysetLocation)">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by opening a PFX file and retrieving the first certificate from it.
            </summary>
            <param name="file">The full path to the PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <param name="exportable"><b>true</b> if the private keys associated with the certificates should be marked as exportable, <b>false</b> otherwise.</param>
            <param name="location">One of the <see cref="T:Org.Mentalis.Security.Certificates.KeysetLocation"/> values.</param>
            <returns>One of the certificates in the PFX file.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading certificates from the specified file.</exception>
            <remarks>
            Warning: this method returns the first Certificate it can find in the specified PFX file.
            Care should be taken to verify whether the correct Certificate instance is returned
            when using PFX files that contain more than one certificate.
            For more fine-grained control over which certificate is returned, use
            the CertificateStore.CreateFromPfxFile method to instantiate a CertificateStore object
            and then use the CertificateStore.FindCertificateBy*** methods.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromPfxFile(System.Byte[],System.String)">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by opening a PFX file and retrieving the first certificate from it.
            </summary>
            <param name="file">The contents of a PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <returns>One of the certificates in the PFX file.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading certificates from the specified bytes.</exception>
            <remarks>
            Warning: this method returns the first Certificate it can find in the specified PFX file.
            Care should be taken to verify whether the correct Certificate instance is returned
            when using PFX files that contain more than one certificate.
            For more fine-grained control over which certificate is returned, use
            the CertificateStore.CreateFromPfxFile method to instantiate a CertificateStore object
            and then use the CertificateStore.FindCertificateBy*** methods.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromPfxFile(System.Byte[],System.String,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by opening a PFX file and retrieving the first certificate from it.
            </summary>
            <param name="file">The contents of a PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <param name="exportable"><b>true</b> if the private keys associated with the certificates should be marked as exportable, <b>false</b> otherwise.</param>
            <returns>One of the certificates in the PFX file.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading certificates from the specified bytes.</exception>
            <remarks>
            Warning: this method returns the first Certificate it can find in the specified PFX file.
            Care should be taken to verify whether the correct Certificate instance is returned
            when using PFX files that contain more than one certificate.
            For more fine-grained control over which certificate is returned, use
            the CertificateStore.CreateFromPfxFile method to instantiate a CertificateStore object
            and then use the CertificateStore.FindCertificateBy*** methods.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromPfxFile(System.Byte[],System.String,System.Boolean,Org.Mentalis.Security.Certificates.KeysetLocation)">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by opening a PFX file and retrieving the first certificate from it.
            </summary>
            <param name="file">The contents of a PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <param name="exportable"><b>true</b> if the private keys associated with the certificates should be marked as exportable, <b>false</b> otherwise.</param>
            <param name="location">One of the <see cref="T:Org.Mentalis.Security.Certificates.KeysetLocation"/> values.</param>
            <returns>One of the certificates in the PFX file.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading certificates from the specified bytes.</exception>
            <remarks>
            Warning: this method returns the first Certificate it can find in the specified PFX file.
            Care should be taken to verify whether the correct Certificate instance is returned
            when using PFX files that contain more than one certificate.
            For more fine-grained control over which certificate is returned, use
            the CertificateStore.CreateFromPfxFile method to instantiate a CertificateStore object
            and then use the CertificateStore.FindCertificateBy*** methods.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromCerFile(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by opening a certificate file and retrieving the first certificate from it.
            </summary>
            <param name="file">The full path to the certificate file to open.</param>
            <returns>One of the certificates in the certificate file.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading certificates from the specified file.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromCerFile(System.Byte[])">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by reading a certificate from a certificate blob.
            </summary>
            <param name="file">The contents of the certificate file.</param>
            <returns>A Certificate instance.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> if a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading the specified certificate.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromCerFile(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by reading a certificate from a certificate blob.
            </summary>
            <param name="file">The contents of the certificate file.</param>
            <param name="offset">The offset from which to start reading.</param>
            <param name="size">The length of the certificate.</param>
            <returns>A Certificate instance.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> if a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading the specified certificate.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromX509Certificate(System.Security.Cryptography.X509Certificates.X509Certificate)">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by duplicating an existing <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate"/> instance.
            </summary>
            <param name="certificate">The X509Certificate instance to duplicate.</param>
            <returns>A Certificate instance.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="certificate"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromPemFile(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by reading a certificate from a PEM encoded file.
            </summary>
            <param name="filename">The path to the PEM file.</param>
            <returns>A Certificate instance.</returns>
            <remarks>This implementation only reads certificates from PEM files. It does not read the private key from the certificate file, if one is present.</remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="filename"/> if a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.IOException">An error occurs while reading from the file.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while reading the certificate from the PEM blob.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromPemFile(System.Byte[])">
            <summary>
            Creates a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class by reading a certificate from a PEM encoded file.
            </summary>
            <param name="file">The contents of the PEM file.</param>
            <returns>A Certificate instance.</returns>
            <remarks>This implementation only reads certificates from PEM files. It does not read the private key from the certificate file, if one is present.</remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> if a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while reading the certificate from the PEM blob.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetCertString(System.String,System.String)">
            <summary>
            Extracts an encoded certificate from a PEM file.
            </summary>
            <param name="cert">The PEM encoded certificate file.</param>
            <param name="delimiter">The delimiter to search for.</param>
            <returns>The Base64 encoded certificate if successfull or a null reference otherwise.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.#ctor(Org.Mentalis.Security.Certificates.Certificate)">
            <summary>
            Duplicates a given certificate.
            </summary>
            <param name="certificate">The certificate to duplicate.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="certificate"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.#ctor(System.IntPtr)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> instance from a handle.
            </summary>
            <param name="handle">The handle from which to initialize the state of the new instance.</param>
            <exception cref="T:System.ArgumentException"><paramref name="handle"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.#ctor(System.IntPtr,System.Boolean)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> instance from a handle.
            </summary>
            <param name="handle">The handle from which to initialize the state of the new instance.</param>
            <param name="duplicate"><b>true</b> if the handle should be duplicated, <b>false</b> otherwise.</param>
            <exception cref="T:System.ArgumentException"><paramref name="handle"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.InitCertificate(System.IntPtr,System.Boolean,Org.Mentalis.Security.Certificates.CertificateStore)">
            <summary>
            Initializes this <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> instance from a handle.
            </summary>
            <param name="handle">The handle from which to initialize the state of the new instance.</param>
            <param name="duplicate"><b>true</b> if the handle should be duplicated, <b>false</b> otherwise.</param>
            <param name="store">The store that owns the certificate.</param>
            <exception cref="T:System.ArgumentException"><paramref name="handle"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetCertificateInfo">
            <summary>
            Returns the <see cref="T:Org.Mentalis.Security.CertificateInfo"/> structure associated with the certificate.
            </summary>
            <returns>A CertificateInfo instance.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.#ctor(System.IntPtr,Org.Mentalis.Security.Certificates.CertificateStore)">
            <summary>
            Initializes this <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> instance from a handle.
            </summary>
            <param name="handle">The handle from which to initialize the state of the new instance.</param>
            <param name="store">The <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> that contains the certificate.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.Clone">
            <summary>
            Creates a copy of this <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/>.
            </summary>
            <returns>The Certificate this method creates, cast as an object.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.Finalize">
            <summary>
            Disposes of the certificate and frees unmanaged resources.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.ToString">
            <summary>
            Returns a string representation of the current <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> object.
            </summary>
            <returns>A string representation of the current Certificate object.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.ToString(System.Boolean)">
            <summary>
            Returns a string representation of the current X509Certificate object, with extra information, if specified.
            </summary>
            <param name="verbose"><b>true</b> to produce the verbose form of the string representation; otherwise, <b>false</b>.</param>
            <returns>A string representation of the current X509Certificate object.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetCertHash">
            <summary>
            Returns the hash value for the X.509v3 certificate as an array of bytes.
            </summary>
            <returns>The hash value for the X.509 certificate.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while retrieving the hash of the certificate.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetCertHash(Org.Mentalis.Security.Certificates.HashType)">
            <summary>
            Returns the hash value for the X.509v3 certificate as an array of bytes.
            </summary>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Certificates.HashType"/> values.</param>
            <returns>The hash value for the X.509 certificate.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while retrieving the hash of the certificate.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetCertHashString">
            <summary>
            Returns the hash value for the X.509v3 certificate as a hexadecimal string.
            </summary>
            <returns>The hexadecimal string representation of the X.509 certificate hash value.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while retrieving the hash of the certificate.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetCertHashString(Org.Mentalis.Security.Certificates.HashType)">
            <summary>
            Returns the hash value for the X.509v3 certificate as a hexadecimal string.
            </summary>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Certificates.HashType"/> values.</param>
            <returns>The hexadecimal string representation of the X.509 certificate hash value.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while retrieving the hash of the certificate.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.BytesToString(System.Byte[])">
            <summary>
            Converts an array of bytes to its hexadecimal string representation.
            </summary>
            <param name="buffer">The bytes to convert.</param>
            <returns>The hexadecimal representation of the byte array.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetEffectiveDate">
            <summary>
            Returns the effective date of this X.509v3 certificate.
            </summary>
            <returns>The effective date for this X.509 certificate.</returns>
            <remarks>The effective date is the date after which the X.509 certificate is considered valid.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetExpirationDate">
            <summary>
            Returns the expiration date of this X.509v3 certificate.
            </summary>
            <returns>The expiration date for this X.509 certificate.</returns>
            <remarks>The expiration date is the date after which the X.509 certificate is no longer considered valid.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetIssuerName">
            <summary>
            Returns the name of the certification authority that issued the X.509v3 certificate.
            </summary>
            <returns>The name of the certification authority that issued the X.509 certificate.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetKeyAlgorithm">
            <summary>
            Returns the key algorithm information for this X.509v3 certificate.
            </summary>
            <returns>The key algorithm information for this X.509 certificate as a string.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetKeyAlgorithmParameters">
            <summary>
            Returns the key algorithm parameters for the X.509v3 certificate.
            </summary>
            <returns>The key algorithm parameters for the X.509 certificate as an array of bytes.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetKeyAlgorithmParametersString">
            <summary>
            Returns the key algorithm parameters for the X.509v3 certificate.
            </summary>
            <returns>The key algorithm parameters for the X.509 certificate as a hexadecimal string.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetPublicKey">
            <summary>
            Returns the public key for the X.509v3 certificate.
            </summary>
            <returns>The public key for the X.509 certificate as an array of bytes.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetPublicKeyString">
            <summary>
            Returns the public key for the X.509v3 certificate.
            </summary>
            <returns>The public key for the X.509 certificate as a hexadecimal string.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetRawCertData">
            <summary>
            Returns the raw data for the entire X.509v3 certificate.
            </summary>
            <returns>A byte array containing the X.509 certificate data.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetRawCertDataString">
            <summary>
            Returns the raw data for the entire X.509v3 certificate.
            </summary>
            <returns>The X.509 certificate data as a hexadecimal string.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetSerialNumber">
            <summary>
            Returns the serial number of the X.509v3 certificate.
            </summary>
            <returns>The serial number of the X.509 certificate as an array of bytes.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetSerialNumberString">
            <summary>
            Returns the serial number of the X.509v3 certificate.
            </summary>
            <returns>The serial number of the X.509 certificate as a hexadecimal string.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetPublicKeyLength">
            <summary>
            Returns the length of the public key of the X.509v3 certificate.
            </summary>
            <returns>Returns the length of the public key in bits. If unable to determine the key's length, returns zero.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetDistinguishedName">
            <summary>
            Returns a list of attributes of the X.509v3 certificate.
            </summary>
            <returns>A StringDictionary that contains the attributes.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while retrieving the attributes.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetExtensions">
            <summary>
            Returns a list of extensions of the X.509v3 certificate.
            </summary>
            <returns>An array of Extension instances.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.FindExtension(System.String)">
            <summary>
            Searches for a certificate extension.
            </summary>
            <param name="oid">The extension to search for.</param>
            <returns>An instance of the <see cref="T:Org.Mentalis.Security.Certificates.Extension"/> class -or- a null reference (<b>Nothing</b> in Visual Basic) if the specified extension could not be found.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="oid"/> is a null  reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.DecodeExtension(Org.Mentalis.Security.Certificates.Extension,System.Int32,System.Type)">
            <summary>
            Decodes the specified extension and returns an object of the specified type that is instantiated with the decoded bytes.
            </summary>
            <param name="extension">The certificate extension to decode.</param>
            <param name="oid">One of the predefined constants specified in the Win32 CryptoAPI. Refer to the documentation of the <a href="http://msdn.microsoft.com/library/en-us/security/security/cryptdecodeobject.asp">CryptDecodeObject</a> function for more information.</param>
            <param name="returnType">A <see cref="T:System.Type"/> instance. See remarks.</param>
            <returns>An object of the type <paramref name="returnType"/>.</returns>
            <remarks><p>
            The specified type should have a public constructor that takes an IntPtr and an int as parameters [in that order].
            The IntPtr is a pointer to the decoded buffer and the int contains the number of decoded bytes.
            The type should not keep the IntPtr reference after construction of an instance, because the memory is freed when the DecodeExtension method returns.
            </p></remarks>
            <exception cref="T:System.ArgumentNullException">One of the parameters is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while decoding the certificate extension.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.DecodeExtension(Org.Mentalis.Security.Certificates.Extension,System.String,System.Type)">
            <summary>
            Decodes the specified extension and returns an object of the specified type that is instantiated with the decoded bytes.
            </summary>
            <param name="extension">The certificate extension to decode.</param>
            <param name="oid">The Object Identifier of the structure. Refer to the documentation of the <a href="http://msdn.microsoft.com/library/en-us/security/security/cryptdecodeobject.asp">CryptDecodeObject</a> function for more information.</param>
            <param name="returnType">A <see cref="T:System.Type"/> instance. See remarks.</param>
            <returns>An object of the type <paramref name="returnType"/>.</returns>
            <remarks><p>
            The specified type should have a public constructor that takes an IntPtr and an int as parameters [in that order].
            The IntPtr is a pointer to the decoded buffer and the int contains the number of decoded bytes.
            The type should not keep the IntPtr reference after construction of an instance, because the memory is freed when the DecodeExtension method returns.
            </p></remarks>
            <exception cref="T:System.ArgumentNullException">One of the parameters is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while decoding the certificate extension.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.DecodeExtension(Org.Mentalis.Security.Certificates.Extension,System.IntPtr,System.Type)">
            <summary>
            Decodes the specified extension and returns an object of the specified type that is instantiated with the decoded bytes.
            </summary>
            <param name="extension">The certificate extension to decode.</param>
            <param name="oid">The Object Identifier of the structure.</param>
            <param name="returnType">A <see cref="T:System.Type"/> instance. See remarks.</param>
            <returns>An object of the type <paramref name="returnType"/>.</returns>
            <remarks><p>
            The specified type should have a public constructor that takes an IntPtr and an int as parameters [in that order].
            The IntPtr is a pointer to the decoded buffer and the int contains the number of decoded bytes.
            The type should not keep the IntPtr reference after construction of an instance, because the memory is freed when the DecodeExtension method returns.
            </p></remarks>
            <exception cref="T:System.ArgumentNullException">One of the parameters is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while decoding the certificate extension.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetName">
            <summary>
            Returns the name of the current principal.
            </summary>
            <returns>The name of the current principal.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">The certificate does not have a name attribute.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetIntendedKeyUsage">
            <summary>
            Returns a list of intended key usages of the X.509v3 certificate.
            </summary>
            <returns>An integer that contains a list of intended key usages.</returns>
            <remarks>Use the bitwise And operator to check whether a specific key usage is set.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetEnhancedKeyUsage">
            <summary>
            Returns a list of enhanced key usages of the X.509v3 certificate.
            </summary>
            <returns>A StringCollection that contains a list of the enhanced key usages.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while retrieving the enhanced key usages.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetCertificateChain">
            <summary>
            Returns a <see cref="T:Org.Mentalis.Security.Certificates.CertificateChain"/> where the leaf certificate corresponds to this <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/>.
            </summary>
            <returns>The CertificateChain corresponding to this Certificate.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while building the certificate chain.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.HasPrivateKey">
            <summary>
            Checks whether the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> has a private key associated with it.
            </summary>
            <returns><b>true</b> if the certificate has a private key associated with it, <b>false</b> otherwise.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetFormat">
            <summary>
            Returns the name of the format of this X.509v3 certificate.
            </summary>
            <returns>The format of this X.509 certificate.</returns>
            <remarks>The format X.509 is always returned in this implementation.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetHashCode">
            <summary>
            Returns the hash code for the X.509v3 certificate as an integer.
            </summary>
            <returns>The hash code for the X.509 certificate as an integer.</returns>
            <remarks>If the X.509 certificate hash is an array of more than 4 bytes, any byte after the fourth byte is not seen in this integer representation.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.Equals(Org.Mentalis.Security.Certificates.Certificate)">
            <summary>
            Compares two <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> objects for equality.
            </summary>
            <param name="other">A Certificate object to compare to the current object.</param>
            <returns><b>true</b> if the current Certificate object is equal to the object specified by <paramref name="other"/>; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.Equals(System.Security.Cryptography.X509Certificates.X509Certificate)">
            <summary>
            Compares a <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> object and an <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate"/> object for equality.
            </summary>
            <param name="other">An X509Certificate object to compare to the current object.</param>
            <returns><b>true</b> if the current Certificate object is equal to the object specified by <paramref name="other"/>; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.Equals(System.Object)">
            <summary>
            Compares two <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> objects for equality.
            </summary>
            <param name="other">A Certificate object to compare to the current object.</param>
            <returns><b>true</b> if the current Certificate object is equal to the object specified by <paramref name="other"/>; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetValidUsages(Org.Mentalis.Security.Certificates.Certificate[])">
            <summary>
            Returns an array of usages consisting of the intersection of the valid usages for all certificates in an array of certificates.
            </summary>
            <param name="certificates">Array of certificates to be checked for valid usage.</param>
            <returns>An array of valid usages -or- a null reference (<b>Nothing</b> in Visual Basic) if all certificates support all usages.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="certificates"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException">The array of certificates contains at least one invalid entry.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while determining the intersection of valid usages.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.ToPfxFile(System.String,System.String,System.Boolean,System.Boolean)">
            <summary>
            Saves the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> as a PFX encoded file.
            </summary>
            <param name="filename">The filename of the new PFX file.</param>
            <param name="password">The password to use when encrypting the private keys.</param>
            <param name="withPrivateKeys"><b>true</b> if the private keys should be exported [if possible], <b>false</b> otherwise.</param>
            <param name="withParents"><b>true</b> if the parent certificates should be exported too [if possible], <b>false</b> otherwise.</param>
            <remarks>If the specified file already exists, the method will throw an exception.</remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="filename"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.IOException">An error occurs while writing the data to the file.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while exporting the certificate store<br>-or-</br><br>an error occurs while building the certificate chain</br><br>-or-</br><br>an error occurs while creating the store</br><br>-or-</br><br>an error occurs while adding the certificate to the store.</br></exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.ToPfxBuffer(System.String,System.Boolean,System.Boolean)">
            <summary>
            Saves the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> as a PFX encoded buffer.
            </summary>
            <param name="password">The password to use when encrypting the private keys.</param>
            <param name="withPrivateKeys"><b>true</b> if the private keys should be exported [if possible], <b>false</b> otherwise.</param>
            <param name="withParents"><b>true</b> if the parent certificates should be exported too [if possible], <b>false</b> otherwise.</param>
            <returns>An array of bytes that represents the PFX encoded certificate.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while exporting the certificate store<br>-or-</br><br>an error occurs while building the certificate chain</br><br>-or-</br><br>an error occurs while creating the store</br><br>-or-</br><br>an error occurs while adding the certificate to the store.</br></exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateCertStore(System.Boolean)">
            <summary>
            Creates an in memory <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> with this <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> in it.
            </summary>
            <param name="withParents"><b>true</b> if the parent certificates should be included [if possible], <b>false</b> otherwise.</param>
            <returns>A CertificateStore instance.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.ToCerFile(System.String)">
            <summary>
            Saves the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> as an encoded file.
            </summary>
            <param name="filename">The file where to store the certificate.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="filename"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.IOException">An error occurs while writing the data.</exception>
            <remarks>If the specified file already exists, this method will throw an exception.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.ToCerBuffer">
            <summary>
            Saves the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> as an encoded buffer.
            </summary>
            <returns>An array of bytes that represents the encoded certificate.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetCertificateBuffer">
            <summary>
            Returns a buffer with the encoded certificate.
            </summary>
            <returns>An array of bytes.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.SaveToFile(System.Byte[],System.String)">
            <summary>
            Writes a buffer with data to a file.
            </summary>
            <param name="buffer">The buffer to write.</param>
            <param name="filename">The filename to write the data to.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="filename"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.IOException">An error occurs while writing the data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.ToX509">
            <summary>
            Returns an X509Certificate object that corresponds to this <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/>.
            </summary>
            <returns>An X509Certificate instance.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.CreateFromBase64String(System.String)">
            <summary>
            Creates a new Certificate from a string representation.
            </summary>
            <param name="rawString">A Base64-encoded representation of the certificate.</param>
            <returns>A new Certificate.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="rawString"/> if a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading the specified certificate.</exception>
            <exception cref="T:System.FormatException">The length of <paramref name="rawString"/> is less than 4 -or- the length of <paramref name="rawString"/> is not an even multiple of 4.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.ToBase64String">
            <summary>
            Returns a Base64-encoded representation of the certificate.
            </summary>
            <returns>A Base64-encoded representation of the certificate.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.ToPemBuffer">
            <summary>
            Converts the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> to a PEM encoded buffer.
            </summary>
            <returns>An array of bytes that represents the PEM encoded certificate.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.GetKeyIdentifier">
            <summary>
            Gets the unique identifier associated with the key.
            </summary>
            <returns>A byte array containing the unique identifier associated with the key.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.ConvertIntToByteArray(System.Int32)">
            <summary>
            Converts an integer to a series of bytes.
            </summary>
            <param name="dwInput">The integer to convert.</param>
            <returns>An array of bytes that represents the integer.</returns>
            <remarks>This method returns the minimum required number of bytes to represent a specific integer number.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.AssociateWithPrivateKey(System.String,System.String)">
            <summary>
            Associates the certificate with a private key from a PVK file.
            </summary>
            <param name="pvkFile">The path to the PVK file to open.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <remarks>
            <p>The <paramref name="password"/> can be a null reference (<b>Nothing</b> in Visual Basic) if the private key is not encrypted.</p>
            <p>The private key will not be exportable.</p>
            </remarks>
            <exception cref="T:System.ArgumentNullException">The PVK file is encrypted and <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.FileNotFoundException">The specified file could not be found.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while importing the private key.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.AssociateWithPrivateKey(System.String,System.String,System.Boolean)">
            <summary>
            Associates the certificate with a private key from a PVK file.
            </summary>
            <param name="pvkFile">The path to the PVK file to open.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <param name="exportable"><b>true</b> if the private key should be marked exportable, <b>false</b> otherwise.</param>
            <remarks>The <paramref name="password"/> can be a null reference (<b>Nothing</b> in Visual Basic) if the private key is not encrypted.</remarks>
            <exception cref="T:System.ArgumentNullException">The PVK file is encrypted and <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.FileNotFoundException">The specified file could not be found.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while importing the private key.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.ExportPrivateKey(System.String,System.String)">
            <summary>
            Exports the private key of this certificate to a PVK file.
            </summary>
            <param name="pvkFile">The path to the PVK file to create.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while exporting the private key.</exception>
            <exception cref="T:System.IO.IOException">An error occurs while writing the PVK file.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.TryDecrypt(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)">
            <summary>
            Tries decrypting the PRIVATEKEYBLOB blob.
            </summary>
            <param name="buffer">The buffer to decrypt.</param>
            <param name="offset">The starting offset.</param>
            <param name="length">The number of bytes to decrypt.</param>
            <param name="password">The password used to encrypt the PVK file (the salt should be prepended to the password).</param>
            <param name="keyLen">The effective key length in bytes (16 for 128 bit encryption, 5 for 40 bit encryption).</param>
            <returns>The decrypted buffer if successfull, or a null reference otherwise.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Certificate.VerifyRevocation(System.Byte[])">
            <summary>
            Verifies whether this certificate has been revoked or not.
            </summary>
            <param name="crl">The encoded CRL to check against.</param>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while verifying the certificate.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="crl"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <returns><b>true</b> if the certificate is not on the CRL and therefore valid, or <b>false</b> if the certificate is on the CRL and therefore revoked.</returns>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.Certificate.m_Handle">
            <summary>
            The handle of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> object.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.Certificate.m_Store">
            <summary>
            The handle of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> object.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.Certificate.m_CertInfo">
            <summary>
            A <see cref="T:Org.Mentalis.Security.CertificateInfo"/> instance associated with this certificate.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.Certificate.m_Context">
            <summary>
            A <see cref="T:Org.Mentalis.Security.CertificateContext"/> instance associated with this certificate.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.Certificate.m_Chain">
            <summary>
            A reference to the associated <see cref="T:Org.Mentalis.Security.Certificates.CertificateChain"/>.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.Certificate.Handle">
            <summary>
            Gets the handle of the Certificate.
            </summary>
            <value>An IntPtr that represents the handle of the certificate.</value>
            <remarks>The handle returned by this property should not be closed. If the handle is closed by an external actor, the methods of the Certificate object may fail in undocumented ways [for instance, an Access Violation may occur].</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.Certificate.Store">
            <summary>
            Gets the handle of the associated <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/>, if any.
            </summary>
            <value>A CertificateStore instance -or- a null reference (<b>Nothing</b> in Visual Basic) is no store is associated with this certificate.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.Certificate.IsCurrent">
            <summary>
            Gets a value indicating whether the certificate is current, that is, has not expired.
            </summary>
            <value><b>true</b> if the certificate is current; otherwise, <b>false</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.Certificate.SupportsDataEncryption">
            <summary>
            Gets a value indicating whether the certificate can be used for encrypting and decrypting messages.
            </summary>
            <value><b>true</b> if the certificate can be used for data encryption; otherwise, <b>false</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.Certificate.SupportsDigitalSignature">
            <summary>
            Gets a value indicating whether the certificate can be used for digital signatures.
            </summary>
            <value><b>true</b> if the certificate can be used for digital signature; otherwise, <b>false</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.Certificate.PrivateKey">
            <summary>
            Gets the private key for the certificate.
            </summary>
            <value>A System.Security.Cryptography.RSA containing the private key for the certificate.</value>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while retrieving the RSA instance associated with the certificate.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.Certificate.PublicKey">
            <summary>
            Gets the public key derived from the certificate's data. This key cannot be used to sign or decrypt data.
            </summary>
            <value>A System.Security.Cryptography.RSA that contains the public key derived from the certificate's data.</value>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while retrieving the RSA instance associated with the certificate.</exception>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.CertificateChain">
            <summary>
            Defines a chain of certificates.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateChain.#ctor(Org.Mentalis.Security.Certificates.Certificate)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.CertificateChain"/> instance from a <see cref="P:Org.Mentalis.Security.Certificates.CertificateChain.Certificate"/>.
            </summary>
            <param name="cert">The certificate for which a chain is being built.</param>
            <remarks><paramref name="cert"/> will always be the end certificate.</remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="cert"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while building the certificate chain.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateChain.#ctor(Org.Mentalis.Security.Certificates.Certificate,Org.Mentalis.Security.Certificates.CertificateStore)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.CertificateChain"/> instance from a <see cref="P:Org.Mentalis.Security.Certificates.CertificateChain.Certificate"/>.
            </summary>
            <param name="cert">The certificate for which a chain is being built.</param>
            <param name="additional">Any additional store to be searched for supporting certificates and CTLs.</param>
            <remarks><paramref name="cert"/> will always be the end certificate.</remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="cert"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while building the certificate chain.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateChain.#ctor(Org.Mentalis.Security.Certificates.Certificate,Org.Mentalis.Security.Certificates.CertificateStore,Org.Mentalis.Security.Certificates.CertificateChainOptions)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.CertificateChain"/> instance from a <see cref="P:Org.Mentalis.Security.Certificates.CertificateChain.Certificate"/>.
            </summary>
            <param name="cert">The certificate for which a chain is being built.</param>
            <param name="additional">Any additional store to be searched for supporting certificates and CTLs.</param>
            <param name="options">Additional certificate chain options.</param>
            <remarks><paramref name="cert"/> will always be the end certificate.</remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="cert"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while building the certificate chain.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateChain.Finalize">
            <summary>
            Disposes of the certificate chain.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateChain.GetCertificates">
            <summary>
            Returns the list of certificates in this <see cref="T:Org.Mentalis.Security.Certificates.CertificateChain"/>.
            </summary>
            <returns>An array of <see cref="P:Org.Mentalis.Security.Certificates.CertificateChain.Certificate"/> instances.</returns>
            <remarks>
            The certificate with index 0 is the end certificate in the chain, the certificate with the highest index is the root certificate [if it can be found].
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateChain.VerifyChain(System.String,Org.Mentalis.Security.Certificates.AuthType)">
            <summary>
            Verifies the end <see cref="P:Org.Mentalis.Security.Certificates.CertificateChain.Certificate"/> according to the SSL policy rules.
            </summary>
            <param name="server">The server that returned the certificate -or- a null reference if the certificate is a client certificate.</param>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Certificates.AuthType"/> values.</param>
            <returns>One of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStatus"/> values.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while verifying the certificate.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateChain.VerifyChain(System.String,Org.Mentalis.Security.Certificates.AuthType,Org.Mentalis.Security.Certificates.VerificationFlags)">
            <summary>
            Verifies the end <see cref="P:Org.Mentalis.Security.Certificates.CertificateChain.Certificate"/> according to the SSL policy rules.
            </summary>
            <param name="server">The server that returned the certificate -or- a null reference if the certificate is a client certificate.</param>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Certificates.AuthType"/> values.</param>
            <param name="flags">One or more of the <see cref="T:Org.Mentalis.Security.Certificates.VerificationFlags"/> values. VerificationFlags values can be combined with the OR operator.</param>
            <returns>One of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStatus"/> values.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while verifying the certificate.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateChain.VerifyChain(System.String,Org.Mentalis.Security.Certificates.AuthType,Org.Mentalis.Security.Certificates.VerificationFlags,System.Byte[])">
            <summary>
            Verifies the end <see cref="P:Org.Mentalis.Security.Certificates.CertificateChain.Certificate"/> according to the SSL policy rules.
            </summary>
            <param name="server">The server that returned the certificate -or- a null reference if the certificate is a client certificate.</param>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Certificates.AuthType"/> values.</param>
            <param name="flags">One or more of the <see cref="T:Org.Mentalis.Security.Certificates.VerificationFlags"/> values. VerificationFlags values can be combined with the OR operator.</param>
            <param name="crl">An optional CRL to check. This parameter can be null (<b>Nothing</b> in Visual Basic).</param>
            <returns>One of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStatus"/> values.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while verifying the certificate.</exception>
            <remarks>Only the leaf certificate is checked against the CRL.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateChain.BeginVerifyChain(System.String,Org.Mentalis.Security.Certificates.AuthType,Org.Mentalis.Security.Certificates.VerificationFlags,System.AsyncCallback,System.Object)">
            <summary>
            Begins verification of the end <see cref="P:Org.Mentalis.Security.Certificates.CertificateChain.Certificate"/> according to the SSL policy rules.
            </summary>
            <param name="server">The server that returned the certificate -or- a null reference if the certificate is a client certificate.</param>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Certificates.AuthType"/> values.</param>
            <param name="flags">One or more of the <see cref="T:Org.Mentalis.Security.Certificates.VerificationFlags"/> values. VerificationFlags values can be combined with the OR operator.</param>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate.</param>
            <param name="asyncState">An object that contains state information for this request.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous connection.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while queuing the verification request.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateChain.EndVerifyChain(System.IAsyncResult)">
            <summary>
            Ends a pending asynchronous certificate verification request.
            </summary>
            <param name="ar">Stores state information for this asynchronous operation as well as any user-defined data.</param>
            <returns>One of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStatus"/> values.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="ar"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="ar"/> parameter was not returned by a call to the <see cref="M:Org.Mentalis.Security.Certificates.CertificateChain.BeginVerifyChain(System.String,Org.Mentalis.Security.Certificates.AuthType,Org.Mentalis.Security.Certificates.VerificationFlags,System.AsyncCallback,System.Object)"/> method.</exception>
            <exception cref="T:System.InvalidOperationException"><b>EndVerifyChain</b> was previously called for the asynchronous chain verification.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while verifying the certificate chain.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateChain.StartVerification(System.Object)">
            <summary>
            Verifies a certificate chain and calls a delegate when finished.
            </summary>
            <param name="state">Stores state information for this asynchronous operation as well as any user-defined data.</param>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChain.m_Handle">
            <summary>
            The handle of the certificate chain.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChain.m_Certificate">
            <summary>
            The end certificate that was used to build the chain.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateChain.Certificate">
            <summary>
            Returns the certificate for which this chain was built.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.CertificateException">
            <summary>
            The exception that is thrown when a certificate error is detected.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateException.#ctor">
            <summary>
            Initializes a new instance of the CertificateException class with default properties.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the CertificateException class with a specified error message.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the CertificateException class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="inner">The exception that is the cause of the current exception. If the inner parameter is not a null reference (<b>Nothing</b> in Visual Basic), the current exception is raised in a catch block that handles the inner exception.</param>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.CertificateStore">
            <summary>
            Defines a certificate store.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStore.CAStore">
            <summary>Represents the predefined system certificate store "CA". This field is constant.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStore.MyStore">
            <summary>Represents the predefined system certificate store "My". This field is constant.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStore.RootStore">
            <summary>Represents the predefined system certificate store "Root". This field is constant.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStore.TrustStore">
            <summary>Represents the predefined system certificate store "Trust". This field is constant.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStore.UnTrustedStore">
            <summary>Represents the untrusted certificate store. This field is constant.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStore.SoftwarePublisherStore">
            <summary>Represents the software publisher certificate store. This field is constant.</summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.CreateFromPfxFile(System.String,System.String)">
            <summary>
            Creates a new certificate store from a PFX/P12 encoded file.
            </summary>
            <param name="file">The full path to the PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> instance.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.IOException">An error occurs whil reading from the specified file.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading the PFX file.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.CreateFromPfxFile(System.String,System.String,System.Boolean)">
            <summary>
            Creates a new certificate store from a PFX/P12 encoded file.
            </summary>
            <param name="file">The full path to the PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <param name="exportable"><b>true</b> if the private keys associated with the certificates should be marked as exportable, <b>false</b> otherwise.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> instance.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.IOException">An error occurs whil reading from the specified file.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading the PFX file.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.CreateFromPfxFile(System.String,System.String,System.Boolean,Org.Mentalis.Security.Certificates.KeysetLocation)">
            <summary>
            Creates a new certificate store from a PFX/P12 encoded file.
            </summary>
            <param name="file">The full path to the PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <param name="exportable"><b>true</b> if the private keys associated with the certificates should be marked as exportable, <b>false</b> otherwise.</param>
            <param name="location">One of the <see cref="T:Org.Mentalis.Security.Certificates.KeysetLocation"/> values.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> instance.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.IOException">An error occurs whil reading from the specified file.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading the PFX file.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.CreateFromPfxFile(System.Byte[],System.String)">
            <summary>
            Creates a new certificate store from a PFX/P12 encoded file.
            </summary>
            <param name="file">The contents of a PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> instance.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading the PFX file.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.CreateFromPfxFile(System.Byte[],System.String,System.Boolean)">
            <summary>
            Creates a new certificate store from a PFX/P12 encoded file.
            </summary>
            <param name="file">The contents of a PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <param name="exportable"><b>true</b> if the private keys associated with the certificates should be marked as exportable, <b>false</b> otherwise.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> instance.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading the PFX file.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.CreateFromPfxFile(System.Byte[],System.String,System.Boolean,Org.Mentalis.Security.Certificates.KeysetLocation)">
            <summary>
            Creates a new certificate store from a PFX/P12 encoded file.
            </summary>
            <param name="file">The contents of a PFX file.</param>
            <param name="password">The password used to encrypt the private key.</param>
            <param name="exportable"><b>true</b> if the private keys associated with the certificates should be marked as exportable, <b>false</b> otherwise.</param>
            <param name="location">One of the <see cref="T:Org.Mentalis.Security.Certificates.KeysetLocation"/> values.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> instance.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading the PFX file.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.GetFileContents(System.String)">
            <summary>
            Returns the contents of a file.
            </summary>
            <param name="file">The file to read from.</param>
            <returns>A byte array with the contents of the specified file.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.IOException">An error occurs while reading from the specified file.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.CreateFromCerFile(System.String)">
            <summary>
            Creates a new certificate store from a certificate file.
            </summary>
            <param name="file">The certificate file.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> instance.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="file"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while loading the certificate.</exception>
            <remarks>The provider opens the file and first attempts to read the file as a serialized store, then as a PKCS #7 signed message, and finally as a single encoded certificate.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.#ctor(Org.Mentalis.Security.Certificates.CertificateStore)">
            <summary>
            Duplicates an exisiting <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/>.
            </summary>
            <param name="store">The store to duplicate.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="store"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.#ctor(System.IntPtr)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> from a given handle.
            </summary>
            <param name="handle">The handle from which to initialize the CertificateStore from.</param>
            <remarks>The handle will not be duplicated; when this CertificateStore instance is garbage collected, the handle will be freed.</remarks>
            <exception cref="T:System.ArgumentException"><paramref name="handle"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.#ctor(System.IntPtr,System.Boolean)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> from a given handle.
            </summary>
            <param name="handle">The handle from which to initialize the CertificateStore from.</param>
            <param name="duplicate"><b>true</b> if the handle should be duplicated, <b>false</b> otherwise.</param>
            <exception cref="T:System.ArgumentException"><paramref name="handle"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.#ctor(System.String)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> from a given store name.
            </summary>
            <param name="store">The name of the system store to open.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="store"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while opening the specified store.</exception>
            <remarks>
            <p>If the system store name provided in this parameter is not the name of an existing system store, a new system store will be created and used.</p>
            <p>Some example system stores are listed in the following table. 
            <list type="table">
            	<listheader>
            		<term>Predefined system store name</term>
            		<description>Meaning</description>
            	</listheader>
            	<item>
            		<term>"CA"</term>
            		<description>Certification authority certificates.</description>
            	</item>
            	<item>
            		<term>"MY"</term>
            		<description>A certificate store holding "My" certificates with their associated private keys.</description>
            	</item>
            	<item>
            		<term>"ROOT"</term>
            		<description>Root certificates.</description>
            	</item>
            	<item>
            		<term>"SPC"</term>
            		<description>Software publisher certificates.</description>
            	</item>
            </list></p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.#ctor(Org.Mentalis.Security.Certificates.StoreLocation,System.String)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> from a given store name and a given store location.
            </summary>
            <param name="location">The location of the store.</param>
            <param name="store">The name of the store to open.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="store"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while opening the specified store.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.#ctor">
            <summary>
            Initializes a new temporary <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> in memory.
            </summary>
            <remarks>If the store is closed, all the data in the store is lost.</remarks>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while creating the store.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.#ctor(System.Collections.IEnumerable)">
            <summary>
            Initializes a new temporary <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> in memory and adds the specified certificates to it.
            </summary>
            <param name="certs">A set of certificates.</param>
            <remarks>If the store is closed, all the data in the store is lost.</remarks>
            <exception cref="T:System.InvalidCastException"><i>certs</i> contains at least one object that is not of type <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/>.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.#ctor(System.Byte[],Org.Mentalis.Security.Certificates.CertificateStoreType)">
            <summary>
            Opens a serialized certificate store or a certificate store with signed PKCS7 messages.
            </summary>
            <param name="buffer">The bytes of the store to open.</param>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStoreType"/> values.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while opening the store.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.InitStore(System.IntPtr,System.Boolean)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> from a given handle.
            </summary>
            <param name="handle">The handle from which to initialize the CertificateStore from.</param>
            <param name="duplicate"><b>true</b> if the handle should be duplicated, <b>false</b> otherwise.</param>
            <exception cref="T:System.ArgumentException"><paramref name="handle"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.FindCertificate">
            <summary>
            Returns the first certificate from the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/>.
            </summary>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> from the store.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.FindCertificate(Org.Mentalis.Security.Certificates.Certificate)">
            <summary>
            Returns a certificate from the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/>.
            </summary>
            <param name="previous">The previous certificate.</param>
            <returns>The <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> that comes after <paramref name="previous"/> -or- a null reference (<b>Nothing in Visual Basic</b>) if there is no certificate after <paremref name="previous"/>.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.FindCertificateByUsage(System.String[])">
            <summary>
            Finds a certificate having an enhanced key extension that matches one of the <paramref name="keyUsage"/> members.
            </summary>
            <param name="keyUsage">The list of enhanced key usages to search for.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> that has at least one of the specified key usages -or- a null reference (<b>Nothing in Visual Basic</b>) if no valid certificate could be found.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="keyUsage"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="keyUsage"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.FindCertificateByUsage(System.String[],Org.Mentalis.Security.Certificates.Certificate)">
            <summary>
            Finds a certificate having an enhanced key extension that matches one of the <paramref name="keyUsage"/> members.
            </summary>
            <param name="keyUsage">The list of enhanced key usages to search for.</param>
            <param name="previous">The previous certificate.</param>
            <returns>The <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> that comes after <paramref name="previous"/> and that has at least one of the specified key usages -or- a null reference (<b>Nothing in Visual Basic</b>) if no other valid certificate could be found.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="keyUsage"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="keyUsage"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.FindCertificateByHash(System.Byte[])">
            <summary>
            Finds a certificate with a matching hash.
            </summary>
            <param name="hash">The hash to search for.</param>
            <returns>The <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> with the matching default hash -or- a null reference (<b>Nothing</b> in Visual Basic) if no certificate with that hash could be found in the store.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="hash"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.FindCertificateByHash(System.Byte[],Org.Mentalis.Security.Certificates.HashType)">
            <summary>
            Finds a certificate with a matching hash.
            </summary>
            <param name="hash">The hash to search for.</param>
            <param name="hashType">One of the HashType values.</param>
            <returns>The <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> with the matching hash -or- a null reference (<b>Nothing</b> in Visual Basic) if no certificate with that hash could be found in the store.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="hash"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.FindCertificateByKeyIdentifier(System.Byte[])">
            <summary>
            Finds a certificate with a matching key identifier.
            </summary>
            <param name="keyID">The key identifier to search for.</param>
            <returns>The <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> with the matching key identifier -or- a null reference (<b>Nothing</b> in Visual Basic) if no matching certificate could be found in the store.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="keyID"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="keyID"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.FindCertificateBySubjectName(System.String)">
            <summary>
            Finds a certificate with a matching subject name.
            </summary>
            <param name="name">The X500 string to search for.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> with a matching subject name -or- a null reference (<b>Nothing</b> in Visual Basic) if no matching certificate could be found in the store.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="name"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="name"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.FindCertificateBySubjectName(System.String,Org.Mentalis.Security.Certificates.Certificate)">
            <summary>
            Finds a certificate with a matching subject name.
            </summary>
            <param name="name">The X500 string to search for.</param>
            <param name="previous">The previous certificate.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> with a matching subject name -or- a null reference (<b>Nothing</b> in Visual Basic) if no matching certificate could be found in the store.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="name"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="name"/> is invalid.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while encoding the specified string.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.FindCertificateBySubjectString(System.String)">
            <summary>
            Finds a certificate with a subject that contains a specified string.
            </summary>
            <param name="subject">The string to search for.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> with a matching subject string -or- a null reference (<b>Nothing</b> in Visual Basic) if no matching certificate could be found in the store.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="subject"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="subject"/> is invalid.</exception>
            <remarks>The string matching algorithm used is case-insensitive.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.FindCertificateBySubjectString(System.String,Org.Mentalis.Security.Certificates.Certificate)">
            <summary>
            Finds a certificate with a subject that contains a specified string.
            </summary>
            <param name="subject">The string to search for.</param>
            <param name="previous">The previous certificate.</param>
            <returns>A <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> with a matching subject string -or- a null reference (<b>Nothing</b> in Visual Basic) if no matching certificate could be found in the store.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="subject"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="subject"/> is invalid.</exception>
            <remarks>The string matching algorithm used is case-insensitive.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.EnumCertificates">
            <summary>
            Enumerates all the certificates in the store.
            </summary>
            <returns>An array of <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> instances.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.EnumCertificates(System.String[])">
            <summary>
            Enumerates all the certificates in the store.
            </summary>
            <param name="keyUsage">The list of enhanced key usages to search for.</param>
            <returns>An array of <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> instances.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="keyUsage"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="keyUsage"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.ToPfxFile(System.String,System.String,System.Boolean)">
            <summary>
            Saves the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> as a PFX encoded file.
            </summary>
            <param name="filename">The filename of the new PFX file.</param>
            <param name="password">The password to use when encrypting the private keys.</param>
            <param name="exportPrivateKeys"><b>true</b> if the private keys should be exported [if possible], <b>false</b> otherwise.</param>
            <remarks>If the specified file already exists, the method will throw an exception.</remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="filename"/> or <paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while exporting the certificate store.</exception>
            <exception cref="T:System.IO.IOException">An error occurs while writing the data to the file.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.ToPfxBuffer(System.String,System.Boolean)">
            <summary>
            Saves the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> as a PFX encoded file.
            </summary>
            <param name="password">The password to use when encrypting the private keys.</param>
            <param name="exportPrivateKeys"><b>true</b> if the private keys should be exported [if possible], <b>false</b> otherwise.</param>
            <returns>An array of bytes that represents the PFX encoded store.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while exporting the certificate store.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.GetPfxBuffer(System.String,System.Boolean)">
            <summary>
            Returns the byte representation of the PFX encoded store.
            </summary>
            <param name="password">The password to use when encrypting the private keys.</param>
            <param name="exportPrivateKeys"><b>true</b> if the private keys should be exported [if possible], <b>false</b> otherwise.</param>
            <returns>An array of bytes that represents the PFX encoded store.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="password"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.ToCerFile(System.String,Org.Mentalis.Security.Certificates.CertificateStoreType)">
            <summary>
            Saves the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> in a file.
            </summary>
            <param name="filename">The filename of the serialized store.</param>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStoreType"/> values.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="filename"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while saving the store to the memory buffer.</exception>
            <exception cref="T:System.IO.IOException">An error occurs while writing the data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.ToCerBuffer(Org.Mentalis.Security.Certificates.CertificateStoreType)">
            <summary>
            Saves the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> in a buffer.
            </summary>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStoreType"/> values.</param>
            <returns>An array of bytes that represents the encoded store.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while saving the store to the memory buffer.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.GetCerBuffer(Org.Mentalis.Security.Certificates.CertificateStoreType)">
            <summary>
            Returns the byte representation of the serialized store.
            </summary>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStoreType"/> values.</param>
            <returns>An array of bytes that represents the encoded store.</returns>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while saving the store to the memory buffer.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.SaveToFile(System.Byte[],System.String)">
            <summary>
            Writes a buffer with data to a file.
            </summary>
            <param name="buffer">The buffer to write.</param>
            <param name="filename">The filename to write the data to.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> or <paramref name="filename"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.IOException">An error occurs while writing the data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.AddCertificate(Org.Mentalis.Security.Certificates.Certificate)">
            <summary>
            Adds a <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> to the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/>.
            </summary>
            <param name="cert">The certificate to add to the store.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="cert"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while adding the certificate to the store.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.DeleteCertificate(Org.Mentalis.Security.Certificates.Certificate)">
            <summary>
            Deletes a <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> from the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException"><paramref name="cert"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while removing the certificate from the store.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStore.Finalize">
            <summary>
            Disposes of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/>.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStore.m_Handle">
            <summary>
            Holds the handle of the certificate store.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateStore.Handle">
            <summary>
            Gets the handle of the CertificateStore.
            </summary>
            <value>An IntPtr that represents the handle of the certificate.</value>
            <remarks>The handle returned by this property should not be closed. If the handle is closed by an external actor, the methods of the CertificateStore object may fail in undocumented ways [for instance, an Access Violation may occur].</remarks>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.CertificateStoreCollection">
            <summary>
            Defines a collection of certificate stores.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStoreCollection.#ctor(Org.Mentalis.Security.Certificates.CertificateStore[])">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStoreCollection"/> class.
            </summary>
            <param name="stores">An array of stores that should be added to the collection.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="stores"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException">One of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> objects in the array is a <see cref="T:Org.Mentalis.Security.Certificates.CertificateStoreCollection"/> instance. This is not allowed to avoid circular dependencies.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while adding a certificate to the collection.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStoreCollection.#ctor(Org.Mentalis.Security.Certificates.CertificateStoreCollection)">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStoreCollection"/> class.
            </summary>
            <param name="collection">The CertificateStoreCollection whose elements are copied to the new certificate store collection.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while adding a certificate to the collection.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStoreCollection.AddStore(Org.Mentalis.Security.Certificates.CertificateStore)">
            <summary>
            Adds a certificate store to the collection.
            </summary>
            <param name="store">An instance of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> class.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="store"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException">The specified certificate store is a <see cref="T:Org.Mentalis.Security.Certificates.CertificateStoreCollection"/> instance. This is not allowed to avoid circular dependencies.</exception>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while adding the certificate to the collection.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateStoreCollection.RemoveStore(Org.Mentalis.Security.Certificates.CertificateStore)">
            <summary>
            Removes a certificate store from the collection.
            </summary>
            <param name="store">An instance of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStore"/> class.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="store"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStoreCollection.m_Stores">
            <summary>
            Holds the references to the CertificateStore instances in the collection. This is to avoid CertificateStores finalizing and destroying their handles.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.HashType">
            <summary>
            Defines the different hash type values.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.HashType.SHA1">
            <summary>The certificate will be hashed using the SHA1 algorithm.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.HashType.MD5">
            <summary>The certificate will be hashed using the MD5 algorithm.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.HashType.Default">
            <summary>The certificate will be hashed using the default hashing algorithm.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.KeyUsage">
            <summary>
            Defines the different key usage values.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.KeyUsage.DataEncipherment">
            <summary>The key can be used for data encipherment.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.KeyUsage.DigitalSignature">
            <summary>The key can be used to sign data.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.KeyUsage.KeyAgreement">
            <summary>The key can be used in key agreement algorithms.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.KeyUsage.KeyCertSign">
            <summary>The key can be used to sign certificates.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.KeyUsage.KeyEncipherment">
            <summary>The key can be used for key encipherment.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.KeyUsage.NonRepudiation">
            <summary>The key can be used for electronic non-repudiation.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.KeyUsage.CrlSign">
            <summary>The key can be used to sign certificate revocation lists.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.AuthType">
            <summary>
            Defines the different authentication type values.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.AuthType.Client">
            <summary>The certificate is a client certificate.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.AuthType.Server">
            <summary>The certificate is a server certificate.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.CertificateStatus">
            <summary>
            Defines the different certificate status values.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.ValidCertificate">
            <summary>The certificate is valid.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.Expired">
            <summary>A required certificate is not within its validity period.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.InvalidBasicConstraints">
            <summary>The certificate's basic constraints are invalid or missing.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.InvalidChain">
            <summary>A chain of certificates was not correctly created.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.InvalidNesting">
            <summary>The validity periods of the certification chain do not nest correctly.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.InvalidPurpose">
            <summary>A certificate is being used for a non permitted purpose.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.InvalidRole">
            <summary>A certificate that can only be used as an end-entity is being used as a CA or visa versa.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.InvalidSignature">
            <summary>The signature of the certificate cannot be verified.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.NoCNMatch">
            <summary>The certificate's CN name does not match the passed value.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.ParentRevoked">
            <summary>A certificate in the chain has been explicitly revoked by its issuer.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.RevocationFailure">
            <summary>The revocation process could not continue. The certificates could not be checked.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.RevocationServerOffline">
            <summary>Since the revocation server was offline, the called function was not able to complete the revocation check.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.Revoked">
            <summary>The certificate or signature has been revoked.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.UntrustedRoot">
            <summary>A certification chain processed correctly but terminated in a root certificate not trusted by the trust provider.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.UntrustedTestRoot">
            <summary>The root certificate is a testing certificate and policy settings disallow test certificates.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.WrongUsage">
            <summary>The certificate is not valid for the requested usage.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStatus.OtherError">
            <summary>The certificate is invalid.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.CertificateStoreType">
            <summary>
            Defines the different certificate store values.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStoreType.SerializedStore">
            <summary>The certificate store should be saved as a serializes store.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateStoreType.Pkcs7Message">
            <summary>The certificate store should be saved as a signed PKCS7 message.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.CertificateChainOptions">
            <summary>
            Defines additional options for building a certificate chain.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChainOptions.Default">
            <summary>The default chain options</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChainOptions.RecovationCheckEndCert">
            <summary>Revocation checking is done on the end certificate and only the end certificate.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChainOptions.RevocationCheckChain">
            <summary>Revocation checking is done on all of the certificates in every chain.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChainOptions.RevocationCheckChainExcludeRoot">
            <summary>Revocation checking in done on all certificates in all of the chains except the root certificate.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChainOptions.RevocationCacheEndCert">
            <summary>When this flag is set, the end certificate is cached, which might speed up the chain-building process. By default, the end certificate is not cached and it would need to be verified each time a chain is built for it.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChainOptions.RevocationCheckCacheOnly">
            <summary>Revocation checking only accesses cached URLs and does not hit the wire to do any revocation URL retrieval. Supported on Windows Me, Windows 2000 and later.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChainOptions.CacheOnlyUrlRetrieval">
            <summary>Uses only cached URLs in building a certificate chain. The Internet and Intranet are not searched for URL-based objects. Note, not applicable to revocation checking. Set CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY to use only cached URLs for revocation checking.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChainOptions.DisablePass1QualityFiltering">
            <summary>For performance reasons, the second pass of chain building only considers potential chain paths that have quality greater than or equal to the highest quality determined during the first pass. The first pass only considers valid signature, complete chain and trusted roots to calculate chain quality. This flag can be set to disable this optimization and consider all potential chain paths during the second pass.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChainOptions.ReturnLowerQualityContexts">
            <summary>The default is to return only the highest quality chain path. Setting this flag will return the lower quality chains. These are returned in the chain context's cLowerQualityChainContext and rgpLowerQualityChainContext fields.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateChainOptions.DisableAuthRootAutoUpdate">
            <summary>Setting this flag inhibits the auto update of third party roots from the Windows Update Web Server.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.VerificationFlags">
            <summary>
            Defines the different verificateion flags values.
            </summary>
            <remarks>
            You can specify more VerificationFlags at once by combining them with the OR operator.
            </remarks>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.None">
            <summary>No flags.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreTimeNotValid">
            <summary>Ignore an invalid time.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreCtlTimeNotValid">
            <summary>Ignore an invalid time of the certificate trust list.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreTimeNotNested">
            <summary>Ignore an invalid time nesting.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreInvalidBasicContraints">
            <summary>Ignore invalid basic contraints.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreAllTimeChecks">
            <summary>Ignore all time checks.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.AllowUnknownCA">
            <summary>Allow an unknown certificate authority.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreWrongUsage">
            <summary>Ignore the wrong usage of a certificate.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreInvalidName">
            <summary>Ignore an invalid name.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreInvalidPolicy">
            <summary>Ignore an invalid policy.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreEndRevUnknown">
            <summary>Ignore an unknown revocation status of the end certificate.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreSignerRevUnknown">
            <summary>Ignore an unknown revocation status of the signer certificate.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreCARevUnknown">
            <summary>Ignore an unknown revocation status of the certificate authority.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreRootRevUnknown">
            <summary>Ignore an unknown revocation status of the root certificate.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.IgnoreAllRevUnknown">
            <summary>Ignore an unknown revocation status of any of the certificates.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.AllowTestroot">
            <summary>Allow a test root.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.VerificationFlags.TrustTestroot">
            <summary>Trust a test root.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.StoreLocation">
            <summary>
            Specifies the location of the X.509 certificate store.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.StoreLocation.CurrentService">
            <summary>The certificate store for the current service.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.StoreLocation.CurrentUser">
            <summary>The certificate store for the currently logged-on user.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.StoreLocation.CurrentUserGroupPolicy">
            <summary>The certificate store for the currently logged-on group.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.StoreLocation.LocalMachine">
            <summary>The certificate store for the local computer.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.StoreLocation.LocalMachineEnterprise">
            <summary>The certificate store for the local machine enterprise downloaded from a network setting.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.StoreLocation.LocalMachineGroupPolicy">
            <summary>The certificate store for the local machine group policy downloaded from a network setting.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.StoreLocation.Services">
            <summary>The certificate store for a specified service account; for example, an Alerter or the Event Log.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.StoreLocation.Unknown">
            <summary>The location is unknown.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.StoreLocation.Users">
            <summary>The certificate store for the users group of this computer.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.NameAttribute">
            <summary>
            Defines a structure that represents one attribute of a relative distinguished name.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.NameAttribute.#ctor(System.String,System.String)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.NameAttribute"/> instance.
            </summary>
            <param name="oid">The object identifier of the attribute.</param>
            <param name="val">The decoded value of the attribute.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.NameAttribute.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:Org.Mentalis.Security.Certificates.NameAttribute"/>.
            </summary>
            <param name="obj">The Object to compare with the current Object. </param>
            <returns><b>true</b> if the specified Object is equal to the current NameAttribute; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.NameAttribute.GetHashCode">
            <summary>
            Serves as a hash function for a <see cref="T:Org.Mentalis.Security.Certificates.NameAttribute"/> type, suitable for use in hashing algorithms and data structures like a hash table.
            </summary>
            <returns>A hash code for the current Object.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.NameAttribute.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:Org.Mentalis.Security.Certificates.NameAttribute"/>.
            </summary>
            <returns>A String that represents the current NameAttribute.</returns>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.NameAttribute.ObjectID">
            <summary>
            The object identifier of the attribute.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.NameAttribute.Value">
            <summary>
            The value of the attribute.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.Extension">
            <summary>
            Represents an encoded certificate extension. 
            </summary>
            <remarks>These extensions can be decoded with the Certificate.DecodeExtension() method.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.Extension.#ctor(System.String,System.Boolean,System.Byte[])">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.Extension"/> class.
            </summary>
            <param name="oid">The object identifier of the extension.</param>
            <param name="critical"><b>true</b> if it is a critical extension, <b>false</b> otherwise.</param>
            <param name="val">A byte array that contains the encoded extension.</param>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.Extension.ObjectID">
            <summary>
            The object identifier of the extension.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.Extension.Critical">
            <summary>
            <b>true</b> if it is a critical extension, <b>false</b> otherwise.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.Extension.EncodedValue">
            <summary>
            A byte array that contains the encoded extension.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.KeysetLocation">
            <summary>
            Defines the different keyset locations.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.KeysetLocation.Default">
            <summary>The private keys are stored in the default location.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.KeysetLocation.LocalMachine">
            <summary>The private keys are stored under local machine and not the current user.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.KeysetLocation.CurrentUser">
            <summary>The private keys are stored under the current user and not the local machine even if the PFX BLOB specifies they should go into local machine.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.CertificateVerificationResult">
            <summary>
            Represents the status of an asynchronous certificate chain verification operation.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateVerificationResult.#ctor(Org.Mentalis.Security.Certificates.CertificateChain,System.String,Org.Mentalis.Security.Certificates.AuthType,Org.Mentalis.Security.Certificates.VerificationFlags,System.AsyncCallback,System.Object)">
            <summary>
            Initializes a new CertificateVerificationResult instance.
            </summary>
            <param name="chain">The <see cref="T:Org.Mentalis.Security.Certificates.CertificateChain"/> that has to be verified.</param>
            <param name="server">The server to which the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> has been issued.</param>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Certificates.AuthType"/> values.</param>
            <param name="flags">One of the <see cref="T:Org.Mentalis.Security.Certificates.VerificationFlags"/> values.</param>
            <param name="callback">The delegate to call when the verification finishes.</param>
            <param name="asyncState">User-defined state data.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.CertificateVerificationResult.VerificationCompleted(System.Exception,Org.Mentalis.Security.Certificates.CertificateStatus)">
            <summary>
            Sets the WaitHandle to signalled and calls the appropriate delegate.
            </summary>
            <param name="error">An exception that may have occurred.</param>
            <param name="status">The status of the certificate chain.</param>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateVerificationResult.m_IsCompleted">
            <summary>Holds the value of the IsCompleted property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateVerificationResult.m_AsyncState">
            <summary>Holds the value of the AsyncState property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateVerificationResult.m_Chain">
            <summary>Holds the value of the Chain property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateVerificationResult.m_Server">
            <summary>Holds the value of the Server property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateVerificationResult.m_Type">
            <summary>Holds the value of the Type property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateVerificationResult.m_Flags">
            <summary>Holds the value of the Flags property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateVerificationResult.m_WaitHandle">
            <summary>Holds the value of the WaitHandle property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateVerificationResult.m_Callback">
            <summary>Holds the value of the Callback property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateVerificationResult.m_HasEnded">
            <summary>Holds the value of the HasEnded property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateVerificationResult.m_ThrowException">
            <summary>Holds the value of the ThrowException property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.CertificateVerificationResult.m_Status">
            <summary>Holds the value of the Status property.</summary>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateVerificationResult.CompletedSynchronously">
            <summary>
            Gets an indication of whether the asynchronous operation completed synchronously.
            </summary>
            <value>Always <b>false</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateVerificationResult.IsCompleted">
            <summary>
            Gets a boolean value that indicates whether the operation has finished.
            </summary>
            <value>
            <b>true</b> if the verification of the chain has been completed, <b>false</b> otherwise.
            </value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateVerificationResult.AsyncWaitHandle">
            <summary>
            Gets a <see cref="T:System.Threading.WaitHandle"/> that is used to wait for an asynchronous operation to complete.
            </summary>
            <value>
            A WaitHandle that is used to wait for an asynchronous operation to complete.
            </value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateVerificationResult.AsyncState">
            <summary>
            Gets a user-defined object that qualifies or contains information about an asynchronous operation.
            </summary>
            <value>
            A user-defined object that qualifies or contains information about an asynchronous operation.
            </value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateVerificationResult.Chain">
            <summary>
            Gets the associated certificate chain.
            </summary>
            <value>
            A <see cref="T:Org.Mentalis.Security.Certificates.CertificateChain"/> instance.
            </value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateVerificationResult.Server">
            <summary>
            Gets the associated server name.
            </summary>
            <value>
            A string that holds the server name.
            </value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateVerificationResult.Type">
            <summary>
            Gets the associated authentication type.
            </summary>
            <value>
            One of the <see cref="T:Org.Mentalis.Security.Certificates.AuthType"/> values.
            </value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateVerificationResult.Flags">
            <summary>
            Gets the associated verification flags.
            </summary>
            <value>
            One of the <see cref="T:Org.Mentalis.Security.Certificates.VerificationFlags"/> values.
            </value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateVerificationResult.HasEnded">
            <summary>
            Gets or sets a value that indicates whether the user has called EndVerifyChain for this object.
            </summary>
            <value>
            <b>true</b> if the user has called EndVerifyChain, <b>false</b> otherwise.
            </value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateVerificationResult.ThrowException">
            <summary>
            Gets an exception that has occurred while verifying the certificate chain or a null reference (<b>Nothing</b> in Visual Basic) if the verification succeeded.
            </summary>
            <value>
            A <see cref="T:System.Exception"/> instance.
            </value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.CertificateVerificationResult.Status">
            <summary>
            Gets the status of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateChain"/>.
            </summary>
            <value>
            One of the <see cref="T:Org.Mentalis.Security.Certificates.CertificateStatus"/> values.
            </value>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.DistinguishedName">
            <summary>
            Represents a Relative Distinguished Name (RDN) of a <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/>.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedName.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedName"/> class.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedName.#ctor(Org.Mentalis.Security.CertificateNameInfo)">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedName"/> class.
            </summary>
            <param name="cni">A <see cref="T:Org.Mentalis.Security.CertificateNameInfo"/> instance that's used to initialize the object.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedName.#ctor(System.IntPtr,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedName"/> class.
            </summary>
            <param name="input">A pointer to a buffer that's used to initialize the object.</param>
            <param name="length">The length of the buffer.</param>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">Could not decode the buffer.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedName.Initialize(Org.Mentalis.Security.CertificateNameInfo)">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedName"/> class with a given <see cref="T:Org.Mentalis.Security.CertificateNameInfo"/> instance.
            </summary>
            <param name="cni">The CertificateNameInfo instance to initialize from.</param>
            <exception cref="T:Org.Mentalis.Security.Certificates.CertificateException">An error occurs while initializeing the DistinguishedName object.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedName.Add(Org.Mentalis.Security.Certificates.NameAttribute)">
            <summary>
            Adds a <see cref="T:Org.Mentalis.Security.Certificates.NameAttribute"/> to the end of the list.
            </summary>
            <param name="attribute">The NameAttribute to be added to the end of the list. </param>
            <returns>The index at which the value has been added.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedName.Clear">
            <summary>
            Removes all elements from the list.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedName.Contains(Org.Mentalis.Security.Certificates.NameAttribute)">
            <summary>
            Determines whether an element is in the list.
            </summary>
            <param name="value">The <see cref="T:Org.Mentalis.Security.Certificates.NameAttribute"/> to locate in the list.</param>
            <returns><b>true</b> if item is found in the list; otherwise, <b>false</b>.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedName.IndexOf(Org.Mentalis.Security.Certificates.NameAttribute)">
            <summary>
            Searches for the specified Object and returns the zero-based index of the first occurrence within the entire list.
            </summary>
            <param name="value">The <see cref="T:Org.Mentalis.Security.Certificates.NameAttribute"/> to locate in the list.</param>
            <returns>The zero-based index of the first occurrence of value within the entire list, if found; otherwise, -1.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedName.Insert(System.Int32,Org.Mentalis.Security.Certificates.NameAttribute)">
            <summary>
            Inserts an element into the list at the specified index.
            </summary>
            <param name="index">The zero-based index at which value should be inserted.</param>
            <param name="value">The <see cref="T:Org.Mentalis.Security.Certificates.NameAttribute"/> to insert.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedName.Remove(Org.Mentalis.Security.Certificates.NameAttribute)">
            <summary>
            Removes the first occurrence of a specific element from the list.
            </summary>
            <param name="value">The <see cref="T:Org.Mentalis.Security.Certificates.NameAttribute"/> to remove from the list.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedName.RemoveAt(System.Int32)">
            <summary>
            Removes the element at the specified index of the list.
            </summary>
            <param name="index">The zero-based index of the element to remove.</param>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.DistinguishedName.m_List">
            <summary>
            The internal list instance.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.DistinguishedName.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <param name="index">The zero-based index of the element to get or set. </param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero -or- <paramref name="index"/> is equal to or greater than <see cref="P:Org.Mentalis.Security.Certificates.DistinguishedName.Count"/>.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.DistinguishedName.Count">
            <summary>
            Gets the number of elements actually contained in the list.
            </summary>
            <value>The number of elements actually contained in the list.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Certificates.DistinguishedNameList">
            <summary>
            Implements a collection of <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedName"/> instances.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.#ctor">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/> instance.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.#ctor(System.Collections.ArrayList)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/> instance.
            </summary>
            <param name="state">The initial state of the collection.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="state"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.Add(Org.Mentalis.Security.Certificates.DistinguishedName)">
            <summary>
            Adds a <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedName"/> to the end of the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/>.
            </summary>
            <param name="value">The <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedName"/> to be added to the end of the DistinguishedNameList.</param>
            <returns>The list index at which the value has been added.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.NotSupportedException">The list is read-only -or- the list has a fixed size.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.Clear">
            <summary>
            Removes all elements from the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/>.
            </summary>
            <exception cref="T:System.NotSupportedException">The list is read-only -or- the list has a fixed size.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.Contains(Org.Mentalis.Security.Certificates.DistinguishedName)">
            <summary>
            Determines whether an element is in the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/>.
            </summary>
            <param name="value">The Object to locate in the DistinguishedNameList. The element to locate cannot be a null reference (<b>Nothing</b> in Visual Basic).</param>
            <returns><b>true</b> if item is found in the DistinguishedNameList; otherwise, <b>false</b>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.IndexOf(Org.Mentalis.Security.Certificates.DistinguishedName)">
            <summary>
            Searches for the specified <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedName"/> and returns the zero-based index of the first occurrence within the entire <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/>.
            </summary>
            <param name="value">The DistinguishedName to locate in the DistinguishedNameList.</param>
            <returns>The zero-based index of the first occurrence of value within the entire DistinguishedNameList, if found; otherwise, -1.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.Insert(System.Int32,Org.Mentalis.Security.Certificates.DistinguishedName)">
            <summary>
            Inserts an element into the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/> at the specified index.
            </summary>
            <param name="index">The zero-based index at which <paramref name="value"/> should be inserted.</param>
            <param name="value">The <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedName"/> to insert. </param>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero -or- <paramref name="index"/> is greater than <see cref="P:Org.Mentalis.Security.Certificates.DistinguishedNameList.Count"/>.</exception>
            <exception cref="T:System.NotSupportedException">The DistinguishedNameList is read-only -or- the DistinguishedNameList has a fixed size.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.Remove(Org.Mentalis.Security.Certificates.DistinguishedName)">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/>.
            </summary>
            <param name="value">The <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedName"/> to remove from the DistinguishedNameList.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.NotSupportedException">The DistinguishedNameList is read-only -or- the DistinguishedNameList has a fixed size.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.RemoveAt(System.Int32)">
            <summary>
            Removes the element at the specified index of the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/>.
            </summary>
            <param name="index">The zero-based index of the element to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero -or- <paramref name="index"/> is greater than <see cref="P:Org.Mentalis.Security.Certificates.DistinguishedNameList.Count"/>.</exception>
            <exception cref="T:System.NotSupportedException">The DistinguishedNameList is read-only -or- the DistinguishedNameList has a fixed size.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the entire <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/> to a compatible one-dimensional <see cref="T:System.Array"/>, starting at the specified index of the target array.
            </summary>
            <param name="array">The one-dimensional Array that is the destination of the elements copied from DistinguishedNameList. The Array must have zero-based indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than zero.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional -or- <paramref name="arrayIndex"/> is equal to or greater than the length of <paramref name="array"/> -or- the number of elements in the source DistinguishedNameList is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination array.</exception>
            <exception cref="T:System.InvalidCastException">The type of the source DistinguishedNameList cannot be cast automatically to the type of the destination array.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.GetEnumerator">
            <summary>
            Returns an enumerator for the entire <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/>.
            </summary>
            <returns>An IEnumerator for the entire ArrayList.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Certificates.DistinguishedNameList.Clone">
            <summary>
            Creates a shallow copy of the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/>.
            </summary>
            <returns>A shallow copy of the DistinguishedNameList.</returns>
        </member>
        <member name="F:Org.Mentalis.Security.Certificates.DistinguishedNameList.m_List">
            <summary>
            Holds the internal list.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.DistinguishedNameList.IsFixedSize">
            <summary>
            Gets a value indicating whether the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/> has a fixed size.
            </summary>
            <value><b>true</b> if the ArrayList has a fixed size; otherwise, <b>false</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.DistinguishedNameList.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/> is read-only.
            </summary>
            <value><b>true</b> if the ArrayList is read-only; otherwise, <b>false</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.DistinguishedNameList.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <param name="index">The zero-based index of the element to get or set.</param>
            <value>The element at the specified index.</value>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero -or- <paramref name="index"/> is equal to or greater than <see cref="P:Org.Mentalis.Security.Certificates.DistinguishedNameList.Count"/>.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.DistinguishedNameList.Count">
            <summary>
            Gets the number of elements actually contained in the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/>.
            </summary>
            <value>The number of elements actually contained in the DistinguishedNameList.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.DistinguishedNameList.IsSynchronized">
            <summary>
            Gets a value indicating whether access to the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/> is synchronized (thread-safe).
            </summary>
            <value><b>true</b> if access to the DistinguishedNameList is synchronized (thread-safe); otherwise, <b>false</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Certificates.DistinguishedNameList.SyncRoot">
            <summary>
            Gets an object that can be used to synchronize access to the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/>.
            </summary>
            <value>An object that can be used to synchronize access to the DistinguishedNameList.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.ARCFourManaged">
            <summary>
            Accesses the managed version of the ARCFour algorithm. This class cannot be inherited.
            ARCFour is fully compatible with the RC4<sup>TM</sup> algorithm.
            </summary>
            <remarks>
            RC4 is a trademark of RSA Data Security Inc.
            </remarks>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.RC4">
            <summary>
            Represents the base class from which all implementations of the RC4 symmetric stream cipher must inherit.
            </summary>
            <remarks>
            RC4 is a trademark of RSA Data Security Inc.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4.#ctor">
            <summary>
            Initializes a new instance of the RC4 class.
            </summary>
            <remarks>
            The default keysize is 128 bits.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4.GenerateIV">
            <summary>
            This is a stub method.
            </summary>
            <remarks>Since the RC4 cipher doesn't use an Initialization Vector, this method will not do anything.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4.GenerateKey">
            <summary>
            Generates a random Key to be used for the algorithm.
            </summary>
            <remarks>Use this method to generate a random key when none is specified.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4.Create">
            <summary>
            Creates an instance of the default cryptographic object used to perform the RC4 transformation.
            </summary>
            <returns>The instance of a cryptographic object used to perform the RC4 transformation.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4.Create(System.String)">
            <summary>
            Creates an instance of the specified cryptographic object used to perform the RC4 transformation.
            </summary>
            <param name="AlgName">The name of the specific implementation of <see cref="T:Org.Mentalis.Security.Cryptography.RC4"/> to create.</param>
            <returns>A cryptographic object.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4.GetRNGCSP">
            <summary>
            Returns an <see cref="T:System.Security.Cryptography.RNGCryptoServiceProvider"/> instance.
            </summary>
            <returns>An RNGCryptoServiceProvider instance.</returns>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RC4.m_RNG">
            <summary>
            Holds the RNGCryptoServiceProvider object.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4.BlockSize">
            <summary>
            Gets or sets the block size of the cryptographic operation in bits.
            </summary>
            <value>The block size of RC4 is always 8 bits.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The block size is invalid.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4.FeedbackSize">
            <summary>
            Gets or sets the feedback size of the cryptographic operation in bits.
            </summary>
            <value>This property always throws a <see cref="T:System.Security.Cryptography.CryptographicException"/>.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">This exception is always thrown.</exception>
            <remarks>RC4 doesn't use the FeedbackSize property.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4.IV">
            <summary>
            Gets or sets the initialization vector (IV) for the symmetric algorithm.
            </summary>
            <value>This property always returns a byte array of length one. The value of the byte in the array is always set to zero.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An attempt is made to set the IV to an invalid instance.</exception>
            <remarks>RC4 doesn't use the IV property, however the property accepts IV's of up to one byte (RC4's <see cref="P:Org.Mentalis.Security.Cryptography.RC4.BlockSize"/>) in order to interoperate with software that has been written with the use of block ciphers in mind.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4.LegalBlockSizes">
            <summary>
            Gets the block sizes that are supported by the symmetric algorithm.
            </summary>
            <value>An array containing the block sizes supported by the algorithm.</value>
            <remarks>Only a block size of one byte is supported by the RC4 algorithm.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4.LegalKeySizes">
            <summary>
            Gets the key sizes that are supported by the symmetric algorithm.
            </summary>
            <value>An array containing the key sizes supported by the algorithm.</value>
            <remarks>Only key sizes that match an entry in this array are supported by the symmetric algorithm.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4.Mode">
            <summary>
            Gets or sets the mode for operation of the symmetric algorithm.
            </summary>
            <value>The mode for operation of the symmetric algorithm.</value>
            <remarks>RC4 only supports the OFB cipher mode. See <see cref="T:System.Security.Cryptography.CipherMode"/> for a description of this mode.</remarks>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cipher mode is not OFB.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4.Padding">
            <summary>
            Gets or sets the padding mode used in the symmetric algorithm.
            </summary>
            <value>The padding mode used in the symmetric algorithm. This property always returns PaddingMode.None.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The padding mode is set to a padding mode other than PaddingMode.None.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.ARCFourManaged.#ctor">
            <summary>
            Initializes a new instance of the ARCFourManaged class.
            </summary>
            <remarks>
            The default keysize is 128 bits.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.ARCFourManaged.CreateDecryptor(System.Byte[],System.Byte[])">
            <summary>
            Creates a symmetric <see cref="T:Org.Mentalis.Security.Cryptography.RC4"/> decryptor object with the specified Key.
            </summary>
            <param name="rgbKey">The secret key to be used for the symmetric algorithm.</param>
            <param name="rgbIV">This parameter is not used an should be set to a null reference, or to an array with zero or one bytes.</param>
            <returns>A symmetric ARCFour decryptor object.</returns>
            <remarks>This method decrypts an encrypted message created using the <see cref="M:Org.Mentalis.Security.Cryptography.ARCFourManaged.CreateEncryptor(System.Byte[],System.Byte[])"/> overload with the same signature.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.ARCFourManaged.CreateEncryptor(System.Byte[],System.Byte[])">
            <summary>
            Creates a symmetric <see cref="T:Org.Mentalis.Security.Cryptography.RC4"/> encryptor object with the specified Key.
            </summary>
            <param name="rgbKey">The secret key to be used for the symmetric algorithm.</param>
            <param name="rgbIV">This parameter is not used an should be set to a null reference, or to an array with zero or one bytes.</param>
            <returns>A symmetric ARCFour encryptor object.</returns>
            <remarks>Use the <see cref="M:Org.Mentalis.Security.Cryptography.ARCFourManaged.CreateDecryptor(System.Byte[],System.Byte[])"/> overload with the same signature to decrypt the result of this method.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.ARCFourManaged.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:Org.Mentalis.Security.Cryptography.ARCFourManaged"/> and optionally releases the managed resources.
            </summary>
            <param name="disposing"><b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform">
            <summary>
            Represents an ARCFour managed ICryptoTransform.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.#ctor(System.Byte[])">
            <summary>
            Initializes a new instance of the ARCFourManagedTransform class.
            </summary>
            <param name="key">The key used to initialize the ARCFour state.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.TransformBlock(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)">
            <summary>
            Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array.
            </summary>
            <param name="inputBuffer">The input for which to compute the transform.</param>
            <param name="inputOffset">The offset into the input byte array from which to begin using data.</param>
            <param name="inputCount">The number of bytes in the input byte array to use as data.</param>
            <param name="outputBuffer">The output to which to write the transform.</param>
            <param name="outputOffset">The offset into the output byte array from which to begin writing data.</param>
            <returns>The number of bytes written.</returns>
            <exception cref="T:System.ObjectDisposedException">The object has been disposed.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="inputBuffer"/> or <paramref name="outputBuffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="inputOffset"/>, <paramref name="inputCount"/> or <paramref name="outputOffset"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.TransformFinalBlock(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Transforms the specified region of the specified byte array.
            </summary>
            <param name="inputBuffer">The input for which to compute the transform.</param>
            <param name="inputOffset">The offset into the byte array from which to begin using data.</param>
            <param name="inputCount">The number of bytes in the byte array to use as data.</param>
            <returns>The computed transform.</returns>
            <exception cref="T:System.ObjectDisposedException">The object has been disposed.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="inputBuffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="inputOffset"/> or <paramref name="inputCount"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.Init">
            <summary>
            This method (re)initializes the cipher.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.Dispose">
            <summary>
            Disposes of the cryptographic parameters.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.Finalize">
            <summary>
            Finalizes the object.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.m_Key">
            <summary>
            Holds the key that is used to initialize the ARCFour state.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.m_KeyLen">
            <summary>
            Holds the length of the key, in bytes.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.m_Permutation">
            <summary>
            Holds state information.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.m_Index1">
            <summary>
            Holds state information.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.m_Index2">
            <summary>
            Holds state information.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.m_Disposed">
            <summary>
            Holds a boolean that indicates whether the class has been disposed of or not.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.CanReuseTransform">
            <summary>
            Gets a value indicating whether the current transform can be reused.
            </summary>
            <value>This property returns <b>true</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.CanTransformMultipleBlocks">
            <summary>
            Gets a value indicating whether multiple blocks can be transformed.
            </summary>
            <value>This property returns <b>true</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.InputBlockSize">
            <summary>
            Gets the input block size.
            </summary>
            <value>This property returns 1.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.ARCFourManagedTransform.OutputBlockSize">
            <summary>
            Gets the output block size.
            </summary>
            <value>This property returns 1.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.ProtectionType">
            <summary>
            Specifies the type of encryption method to use when protecting data.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.ProtectionType.LocalMachine">
            <summary>The encrypted data is associated with the local machine. Any user on the computer on which the data is encrypted can decrypt the data.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.ProtectionType.CurrentUser">
            <summary>The encrypted data is associated with the current user. Only a user with logon credentials matching those of the encrypter can decrypt the data.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.CryptoAlgorithm">
            <summary>
            Specifies the type of algorithm to be used when performing unmanaged cryptographic transformations.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.CryptoAlgorithm.Rijndael128">
            <summary>The Rijndael algorithm with a key size of 128 bits.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.CryptoAlgorithm.Rijndael192">
            <summary>The Rijndael algorithm with a key size of 192 bits.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.CryptoAlgorithm.Rijndael256">
            <summary>The Rijndael algorithm with a key size of 256 bits.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.CryptoAlgorithm.RC4">
            <summary>The RC4 algorithm.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.CryptoProvider">
            <summary>
            Specifies the type of CSP to be used when performing unmanaged cryptographic transformations.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.CryptoProvider.RsaFull">
            <summary>Microsoft's full RSA CSP.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.CryptoProvider.RsaAes">
            <summary>Microsoft's full RSA CSP that supports the AES.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.CryptoMethod">
            <summary>
            Specifies the type of transformation for a cryptographic operation.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.CryptoMethod.Encrypt">
            <summary>Encrypt the data.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.CryptoMethod.Decrypt">
            <summary>Decrypt the data.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.PUBLICKEYSTRUC">
            <summary>
            The PUBLICKEYSTRUC structure, also known as the BLOBHEADER structure, indicates a key's BLOB type and the algorithm that the key uses. One of these structures is located at the beginning of the pbData member of every key BLOB.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.PUBLICKEYSTRUC.bType">
            <summary>Key BLOB type. The only BLOB types currently defined are PUBLICKEYBLOB, PRIVATEKEYBLOB, SIMPLEBLOB, and PLAINTEXTBLOB. Other key BLOB types will be defined as needed. </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.PUBLICKEYSTRUC.bVersion">
            <summary>Version number of the key BLOB format. This currently must always have a value of CUR_BLOB_VERSION (0x02).</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.PUBLICKEYSTRUC.reserved">
            <summary>WORD reserved for future use. Must be set to zero.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.PUBLICKEYSTRUC.aiKeyAlg">
            <summary>Algorithm identifier for the key contained by the key BLOB. Some examples are CALG_RSA_SIGN, CALG_RSA_KEYX, CALG_RC2, and CALG_RC4.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider">
            <summary>
            The DataProtectionCryptoServiceProvider is a class that performs encryption and decryption on data without explicitly requiring a password.
            <br>There are two different types of encryption. The first type will associate the encrypted data with the logon credentials of the current user. Hence only a user with matching logon credentials can decrypt the data.</br>
            <br>The second type will associate the encrypted data with the local machine. Any user of a specific machine will be able to decrypt encrypted data under this scheme.</br>
            <br>This class cannot be inherited.</br>
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.#ctor">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider"/> instance.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.#ctor(System.Byte[])">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider"/> instance.
            </summary>
            <param name="optionalEntropy">A buffer holding any additional entropy that can be used during encryption and decryption.</param>
            <remarks>The same entropy must be provided during the encryption and decryption process. Otherwise, the decryption will fail.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.ProtectData(Org.Mentalis.Security.Cryptography.ProtectionType,System.Byte[])">
            <summary>
            Encrypts data according to a specified protection type.
            </summary>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Cryptography.ProtectionType"/> values.</param>
            <param name="data">The data to encrypt.</param>
            <exception cref="T:System.ArgumentNullException"><i>data</i> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs during the encryption process. Under some circumstances, Microsoft cryptographic service providers may not allow encryption when used in France. This may occur on down-level platforms such as Windows 98 and Windows NT 4.0, depending on the system's configuration and the version of the CSPs.</exception>
            <returns>An array of encrypted bytes.</returns>
            <remarks>
            The number of the returned bytes will be larger than the number of input bytes.
            The method will use the entropy from the <see cref="P:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.Entropy"/> property.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.ProtectData(Org.Mentalis.Security.Cryptography.ProtectionType,System.Byte[],System.Byte[])">
            <summary>
            Encrypts data according to a specified protection type.
            </summary>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Cryptography.ProtectionType"/> values.</param>
            <param name="data">The data to encrypt.</param>
            <param name="entropy">Additional entropy to use during the encyption process. This parameter can be set to null.</param>
            <exception cref="T:System.ArgumentNullException"><i>data</i> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs during the encryption process. Under some circumstances, Microsoft cryptographic service providers may not allow encryption when used in France. This may occur on down-level platforms such as Windows 98 and Windows NT 4.0, depending on the system's configuration and the version of the CSPs.</exception>
            <returns>An array of encrypted bytes.</returns>
            <remarks>The number of the returned bytes will be larger than the number of input bytes.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.ProtectData(Org.Mentalis.Security.Cryptography.ProtectionType,System.Byte[],System.Int32,System.Int32,System.Byte[])">
            <summary>
            Encrypts data according to a specified protection type.
            </summary>
            <param name="type">One of the <see cref="T:Org.Mentalis.Security.Cryptography.ProtectionType"/> values.</param>
            <param name="data">The data to encrypt.</param>
            <param name="offset">The zero-based position in the <i>data</i> parameter at which to begin encrypting.</param>
            <param name="size">The number of bytes to encrypt.</param>
            <param name="entropy">Additional entropy to use during the encryption process. This parameter can be set to null.</param>
            <exception cref="T:System.ArgumentNullException"><i>data</i> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException">The specified <i>offset</i> or <i>size</i> exceeds the size of buffer.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs during the encryption process. Under some circumstances, Microsoft cryptographic service providers may not allow encryption when used in France. This may occur on down-level platforms such as Windows 98 and Windows NT 4.0, depending on the system's configuration and the version of the CSPs.</exception>
            <returns>An array of encrypted bytes.</returns>
            <remarks>The number of the returned bytes will be larger than the number of input bytes.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.UnprotectData(System.Byte[])">
            <summary>
            Decrypts data that has been encrypted with the <see cref="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.ProtectData(Org.Mentalis.Security.Cryptography.ProtectionType,System.Byte[])"/> method.
            </summary>
            <param name="data">The data to decrypt.</param>
            <exception cref="T:System.ArgumentNullException"><i>data</i> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException">The specified <i>offset</i> or <i>size</i> exceeds the size of buffer.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs during the encryption process. Under some circumstances, Microsoft cryptographic service providers may not allow encryption when used in France. This may occur on down-level platforms such as Windows 98 and Windows NT 4.0, depending on the system's configuration and the version of the CSPs.</exception>
            <returns>The decrypted data.</returns>
            <remarks>
            The method will use the entropy from the <see cref="P:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.Entropy"/> property.
            The entropy used during decryption must be the same as the entropy used during encryption.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.UnprotectData(System.Byte[],System.Byte[])">
            <summary>
            Decrypts data that has been encrypted with the <see cref="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.ProtectData(Org.Mentalis.Security.Cryptography.ProtectionType,System.Byte[])"/> method.
            </summary>
            <param name="data">The data to decrypt.</param>
            <param name="entropy">Additional entropy to use during the encyption process. This parameter can be set to null.</param>
            <exception cref="T:System.ArgumentNullException"><i>data</i> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs during the encryption process. Under some circumstances, Microsoft cryptographic service providers may not allow encryption when used in France. This may occur on down-level platforms such as Windows 98 and Windows NT 4.0, depending on the system's configuration and the version of the CSPs.</exception>
            <returns>The decrypted data.</returns>
            <remarks>The entropy used during decryption must be the same as the entropy used during encryption.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.UnprotectData(System.Byte[],System.Int32,System.Int32,System.Byte[])">
            <summary>
            Decrypts data that has been encrypted with the <see cref="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.ProtectData(Org.Mentalis.Security.Cryptography.ProtectionType,System.Byte[])"/> method.
            </summary>
            <param name="data">The data to decrypt.</param>
            <param name="offset">The zero-based position in the <i>data</i> parameter at which to begin decrypting.</param>
            <param name="size">The number of bytes to decrypt.</param>
            <param name="entropy">Additional entropy to use during the decryption process. This parameter can be set to null.</param>
            <exception cref="T:System.ArgumentNullException"><i>data</i> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException">The specified <i>offset</i> or <i>size</i> exceeds the size of buffer.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs during the encryption process. Under some circumstances, Microsoft cryptographic service providers may not allow encryption when used in France. This may occur on down-level platforms such as Windows 98 and Windows NT 4.0, depending on the system's configuration and the version of the CSPs.</exception>
            <returns>The decrypted data.</returns>
            <remarks>The entropy used during decryption must be the same as the entropy used during encryption.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.Dispose">
            <summary>
            Releases the unmanaged and managed resources used by the <see cref="T:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider"/> class.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.Finalize">
            <summary>
            Finalizes the <see cref="T:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider"/> class.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.m_OptionalEntropy">
            <summary>
            Holds the entropy.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.m_Disposed">
            <summary>
            Holds a value that indicates whether the class has been disposed of or not.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.DataProtectionCryptoServiceProvider.Entropy">
            <summary>
            Holds additional entropy that can be used during the encryption and decryption process.
            </summary>
            <value>An array en entropy bytes.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.HMAC">
            <summary>
            Implements the HMAC keyed message authentication code algorithm.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.HMAC.#ctor(System.Security.Cryptography.HashAlgorithm)">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Cryptography.HMAC"/> class. This class cannot be inherited.
            </summary>
            <param name="hash">The underlying hash algorithm to use.</param>
            <remarks>A random key will be generated and used by the HMAC.</remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="hash"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.HMAC.#ctor(System.Security.Cryptography.HashAlgorithm,System.Byte[])">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Cryptography.HMAC"/> class.
            </summary>
            <param name="hash">The underlying hash algorithm to use.</param>
            <param name="rgbKey">The key to use for the HMAC -or- a null reference (<b>Nothing</b> in Visual Basic).</param>
            <remarks>If <paramref name="rgbKey"/> is a null reference, the HMAC class will generate a random key.</remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="hash"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.HMAC.Initialize">
            <summary>
            Initializes the HMAC.
            </summary>
            <exception cref="T:System.ObjectDisposedException">The HMAC instance has been disposed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.HMAC.HashCore(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Routes data written to the object into the hash algorithm for computing the hash.
            </summary>
            <param name="rgb">The input for which to compute the hash code. </param>
            <param name="ib">The offset into the byte array from which to begin using data. </param>
            <param name="cb">The number of bytes in the byte array to use as data. </param>
            <exception cref="T:System.ObjectDisposedException">The HMAC instance has been disposed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.HMAC.HashFinal">
            <summary>
            Finalizes the hash computation after the last data is processed by the cryptographic stream object.
            </summary>
            <returns>The computed hash code.</returns>
            <exception cref="T:System.ObjectDisposedException">The HMAC instance has been disposed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.HMAC.Dispose(System.Boolean)">
            <summary>
            Releases the resources used by the HMAC.
            </summary>
            <param name="disposing"><b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.HMAC.Finalize">
            <summary>
            Finalizes the HMAC.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.HMAC.m_HashAlgorithm">
            <summary>
            Holds the internal hash algorithm
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.HMAC.m_KeyBuffer">
            <summary>
            Holds the key buffer.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.HMAC.m_IsHashing">
            <summary>
            <b>true</b> if a hash operation is in prograss, <b>false</b> otherwise.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.HMAC.m_IsDisposed">
            <summary>
            <b>true</b> if the object has been disposed, <b>false</b> otherwise.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.HMAC.HashSize">
            <summary>
            Gets the size of the computed hash code in bits.
            </summary>
            <value>The size of the computed hash code in bits.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.MD2">
            <summary>
            Represents the abstract class from which all implementations of the MD2 hash algorithm inherit.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD2.#ctor">
            <summary>
            Initializes a new instance of <see cref="T:Org.Mentalis.Security.Cryptography.MD2"/>.
            </summary>
            <remarks>You cannot create an instance of an abstract class. Application code will create a new instance of a derived class.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD2.Create">
            <summary>
            Creates an instance of the default implementation of the <see cref="T:Org.Mentalis.Security.Cryptography.MD2"/> hash algorithm.
            </summary>
            <returns>A new instance of the MD2 hash algorithm.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD2.Create(System.String)">
            <summary>
            Creates an instance of the specified implementation of the <see cref="T:Org.Mentalis.Security.Cryptography.MD2"/> hash algorithm.
            </summary>
            <param name="hashName">The name of the specific implementation of MD2 to use.</param>
            <returns>A new instance of the specified implementation of MD2.</returns>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider">
            <summary>
            Computes the <see cref="T:Org.Mentalis.Security.Cryptography.MD2"/> hash for the input data using the implementation provided by the cryptographic service provider (CSP).
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider"/> class. This class cannot be inherited.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider.Initialize">
            <summary>
            Initializes an instance of <see cref="T:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider"/>.
            </summary>
            <exception cref="T:System.ObjectDisposedException">The MD2CryptoServiceProvider instance has been disposed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider.HashCore(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Routes data written to the object into the <see cref="T:Org.Mentalis.Security.Cryptography.MD2"/> hash algorithm for computing the hash.
            </summary>
            <param name="array">The array of data bytes.</param>
            <param name="ibStart">The offset into the byte array from which to begin using data.</param>
            <param name="cbSize">The number of bytes in the array to use as data.</param>
            <exception cref="T:System.ObjectDisposedException">The MD2CryptoServiceProvider instance has been disposed.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The data could not be hashed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider.HashFinal">
            <summary>
            Returns the computed <see cref="T:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider"/> hash as an array of bytes after all data has been written to the object.
            </summary>
            <returns>The computed hash value.</returns>
            <exception cref="T:System.ObjectDisposedException">The MD2CryptoServiceProvider instance has been disposed.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The data could not be hashed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider"/> and optionally releases the managed resources.
            </summary>
            <param name="disposing"><b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider.Finalize">
            <summary>
            Finalizes the MD2CryptoServiceProvider.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider.m_Provider">
            <summary>
            Holds the handle of the crypto service provider.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider.m_Hash">
            <summary>
            Holds the hash handle.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider.m_Disposed">
            <summary>
            <b>true</b> if the object ahs been disposed, <b>false</b> otherwise.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.MD4">
            <summary>
            Represents the abstract class from which all implementations of the MD4 hash algorithm inherit.
            </summary>
            <remarks>Warning: The MD4 algorithm is a broken algorithm. It should <i>only</i> be used for compatibility with older systems.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD4.#ctor">
            <summary>
            Initializes a new instance of <see cref="T:Org.Mentalis.Security.Cryptography.MD4"/>.
            </summary>
            <remarks>You cannot create an instance of an abstract class. Application code will create a new instance of a derived class.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD4.Create">
            <summary>
            Creates an instance of the default implementation of the <see cref="T:Org.Mentalis.Security.Cryptography.MD4"/> hash algorithm.
            </summary>
            <returns>A new instance of the MD4 hash algorithm.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD4.Create(System.String)">
            <summary>
            Creates an instance of the specified implementation of the <see cref="T:Org.Mentalis.Security.Cryptography.MD4"/> hash algorithm.
            </summary>
            <param name="hashName">The name of the specific implementation of MD4 to use.</param>
            <returns>A new instance of the specified implementation of MD4.</returns>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider">
            <summary>
            Computes the <see cref="T:Org.Mentalis.Security.Cryptography.MD2"/> hash for the input data using the implementation provided by the cryptographic service provider (CSP).
            </summary>
            <remarks>Warning: The MD4 algorithm is a broken algorithm. It should <i>only</i> be used for compatibility with older systems.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider"/> class. This class cannot be inherited.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider.Initialize">
            <summary>
            Initializes an instance of <see cref="T:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider"/>.
            </summary>
            <exception cref="T:System.ObjectDisposedException">The MD4CryptoServiceProvider instance has been disposed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider.HashCore(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Routes data written to the object into the <see cref="T:Org.Mentalis.Security.Cryptography.MD4"/> hash algorithm for computing the hash.
            </summary>
            <param name="array">The array of data bytes.</param>
            <param name="ibStart">The offset into the byte array from which to begin using data.</param>
            <param name="cbSize">The number of bytes in the array to use as data.</param>
            <exception cref="T:System.ObjectDisposedException">The MD4CryptoServiceProvider instance has been disposed.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The data could not be hashed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider.HashFinal">
            <summary>
            Returns the computed <see cref="T:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider"/> hash as an array of bytes after all data has been written to the object.
            </summary>
            <returns>The computed hash value.</returns>
            <exception cref="T:System.ObjectDisposedException">The MD4CryptoServiceProvider instance has been disposed.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The data could not be hashed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider"/> and optionally releases the managed resources.
            </summary>
            <param name="disposing"><b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider.Finalize">
            <summary>
            Finalizes the MD4CryptoServiceProvider.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider.m_Provider">
            <summary>
            Holds the handle of the crypto service provider.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider.m_Hash">
            <summary>
            Holds the hash handle.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.MD4CryptoServiceProvider.m_Disposed">
            <summary>
            <b>true</b> if the object ahs been disposed, <b>false</b> otherwise.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider">
            <summary>
            Defines a wrapper object to access the cryptographic service provider (CSP) version of the RC4 algorithm. This class cannot be inherited.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider"/> class.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.GenerateIV">
            <summary>
            This is a stub method.
            </summary>
            <remarks>Since the RC4 cipher doesn't use an Initialization Vector, this method will not do anything.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.GenerateKey">
            <summary>
            Generates a random Key to be used for the algorithm.
            </summary>
            <remarks>Use this method to generate a random key when none is specified.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[])">
            <summary>
            Creates a symmetric decryptor object with the specified Key.
            </summary>
            <param name="rgbKey">The secret key to be used for the symmetric algorithm. </param>
            <param name="rgbIV">Not used in RC4. It can be a null reference or a byte array with a length less than 2.</param>
            <returns>A symmetric decryptor object.</returns>
            <remarks>This method decrypts an encrypted message created using the <see cref="M:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[])"/> overload with the same parameters.</remarks>
            <exception cref="T:System.ObjectDisposedException">The object is disposed.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="rgbKey"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException"></exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[])">
            <summary>
            Creates a symmetric encryptor object with the specified Key.
            </summary>
            <param name="rgbKey">The secret key to be used for the symmetric algorithm. </param>
            <param name="rgbIV">Not used in RC4. It can be a null reference or a byte array with a length less than 2.</param>
            <returns>A symmetric encryptor object.</returns>
            <remarks>Use the <see cref="M:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[])"/> overload with the same parameters to decrypt the result of this method.</remarks>
            <exception cref="T:System.ObjectDisposedException">The object is disposed.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="rgbKey"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException"></exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.CanUseUnmanaged(System.Int32)">
            <summary>
            Returns a boolean that indicates whether the unmanaged CSP can be used or not.
            </summary>
            <param name="keySize">The size of the required key (in bits).</param>
            <returns><b>true</b> if the unmanaged CSP can be used to encrypt and decrypt data, <b>false</b> otherwise.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.Dispose">
            <summary>
            Releases all managed and unmanaged resources used by this class.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.Finalize">
            <summary>
            Finalizes the RC4CryptoServiceProvider.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.m_Managed">
            <summary>Holds a managed <see cref="T:Org.Mentalis.Security.Cryptography.RC4"/> instance.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.m_Provider">
            <summary>Handle of the unmanaged RC4 CSP.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.m_MinLen">
            <summary>Minimal supported key length by the acquired provider.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.m_MaxLen">
            <summary>Maximal supported key length by the acquired provider.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.m_Disposed">
            <summary><b>true</b> if the class is disposed, <b>false</b> otherwise.</summary>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.BlockSize">
            <summary>
            Gets or sets the block size of the cryptographic operation in bits.
            </summary>
            <value>The block size of RC4 is always 8 bits.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The block size is invalid.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.FeedbackSize">
            <summary>
            Gets or sets the feedback size of the cryptographic operation in bits.
            </summary>
            <value>This property always throws a <see cref="T:System.Security.Cryptography.CryptographicException"/>.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">This exception is always thrown.</exception>
            <remarks>RC4 doesn't use the FeedbackSize property.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.IV">
            <summary>
            Gets or sets the initialization vector (IV) for the symmetric algorithm.
            </summary>
            <value>This property always returns a byte array of length one. The value of the byte in the array is always set to zero.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An attempt is made to set the IV to an invalid instance.</exception>
            <remarks>RC4 doesn't use the IV property, however the property accepts IV's of up to one byte (RC4's <see cref="P:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.BlockSize"/>) in order to interoperate with software that has been written with the use of block ciphers in mind.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.Key">
            <summary>
            Gets or sets the secret key for the symmetric algorithm.
            </summary>
            <value>The secret key to be used for the symmetric algorithm.</value>
            <exception cref="T:System.ArgumentNullException">An attempt is made to set the key to a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.KeySize">
            <summary>
            Gets or sets the size of the secret key used by the symmetric algorithm in bits.
            </summary>
            <value>The size of the secret key used by the symmetric algorithm.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The key size is not valid.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.LegalBlockSizes">
            <summary>
            Gets the block sizes that are supported by the symmetric algorithm.
            </summary>
            <value>An array containing the block sizes supported by the algorithm.</value>
            <remarks>Only a block size of one byte is supported by the RC4 algorithm.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.LegalKeySizes">
            <summary>
            Gets the key sizes that are supported by the symmetric algorithm.
            </summary>
            <value>An array containing the key sizes supported by the algorithm.</value>
            <remarks>Only key sizes that match an entry in this array are supported by the symmetric algorithm.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.Mode">
            <summary>
            Gets or sets the mode for operation of the symmetric algorithm.
            </summary>
            <value>The mode for operation of the symmetric algorithm.</value>
            <remarks>RC4 only supports the OFB cipher mode. See <see cref="T:System.Security.Cryptography.CipherMode"/> for a description of this mode.</remarks>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cipher mode is not OFB.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4CryptoServiceProvider.Padding">
            <summary>
            Gets or sets the padding mode used in the symmetric algorithm.
            </summary>
            <value>The padding mode used in the symmetric algorithm. This property always returns PaddingMode.None.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The padding mode is set to a padding mode other than PaddingMode.None.</exception>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform">
            <summary>
            Represents an ARCFour managed ICryptoTransform.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform.#ctor(System.Byte[])">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform"/> class.
            </summary>
            <param name="key">The key used to initialize the RC4 state.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform.TransformBlock(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)">
            <summary>
            Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array.
            </summary>
            <param name="inputBuffer">The input for which to compute the transform.</param>
            <param name="inputOffset">The offset into the input byte array from which to begin using data.</param>
            <param name="inputCount">The number of bytes in the input byte array to use as data.</param>
            <param name="outputBuffer">The output to which to write the transform.</param>
            <param name="outputOffset">The offset into the output byte array from which to begin writing data.</param>
            <returns>The number of bytes written.</returns>
            <exception cref="T:System.ObjectDisposedException">The object has been disposed.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="inputBuffer"/> or <paramref name="outputBuffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="inputOffset"/>, <paramref name="inputCount"/> or <paramref name="outputOffset"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform.TransformFinalBlock(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Transforms the specified region of the specified byte array.
            </summary>
            <param name="inputBuffer">The input for which to compute the transform.</param>
            <param name="inputOffset">The offset into the byte array from which to begin using data.</param>
            <param name="inputCount">The number of bytes in the byte array to use as data.</param>
            <returns>The computed transform.</returns>
            <exception cref="T:System.ObjectDisposedException">The object has been disposed.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="inputBuffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="inputOffset"/> or <paramref name="inputCount"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform.Dispose">
            <summary>
            Disposes of the cryptographic parameters.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform.Finalize">
            <summary>
            Finalizes the object.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform.m_Key">
            <summary>
            Holds the <see cref="T:Org.Mentalis.Security.Cryptography.SymmetricKey"/> used for the cryptographic transformations.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform.CanReuseTransform">
            <summary>
            Gets a value indicating whether the current transform can be reused.
            </summary>
            <value>This property returns <b>true</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform.CanTransformMultipleBlocks">
            <summary>
            Gets a value indicating whether multiple blocks can be transformed.
            </summary>
            <value>This property returns <b>true</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform.InputBlockSize">
            <summary>
            Gets the input block size.
            </summary>
            <value>This property returns 1.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RC4UnmanagedTransform.OutputBlockSize">
            <summary>
            Gets the output block size.
            </summary>
            <value>This property returns 1.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider">
            <summary>
            Accesses the unmanaged version of the <see cref="T:System.Security.Cryptography.Rijndael"/> algorithm. This class cannot be inherited.
            </summary>
            <remarks>
            This class will use the unmanaged implementation of the Rijndael algorithm, when possible. If the unmanaged Rijndael algorithm is not available, it will fall back to the <see cref="T:System.Security.Cryptography.RijndaelManaged"/> implementation.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider"/> class.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.Finalize">
            <summary>
            Releases all unmanaged resources.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.Dispose(System.Boolean)">
            <summary>
            Releases all unmanaged resources.
            </summary>
            <param name="disposing"><b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.GenerateIV">
            <summary>
            Generates a random initialization vector (IV) to be used for the algorithm.
            </summary>
            <remarks>Use this method to generate a random IV when none is specified.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.GenerateKey">
            <summary>
            Generates a random Key to be used for the algorithm.
            </summary>
            <remarks>Use this method to generate a random key when none is specified.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[])">
            <summary>
            Creates a symmetric <see cref="T:System.Security.Cryptography.Rijndael"/> decryptor object with the specified <see cref="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.Key"/> and initialization vector (<see cref="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.IV"/>).
            </summary>
            <param name="rgbKey">The secret key to be used for the symmetric algorithm.</param>
            <param name="rgbIV">The IV to be used for the symmetric algorithm.</param>
            <returns>A symmetric Rijndael decryptor object.</returns>
            <remarks>This method decrypts an encrypted message created using the <see cref="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[])"/> overload with the same signature.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.CreateEncryptor(System.Byte[],System.Byte[])">
            <summary>
            Creates a symmetric <see cref="T:System.Security.Cryptography.Rijndael"/> encryptor object with the specified <see cref="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.Key"/> and initialization vector (<see cref="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.IV"/>).
            </summary>
            <param name="rgbKey">The secret key to be used for the symmetric algorithm.</param>
            <param name="rgbIV">The IV to be used for the symmetric algorithm.</param>
            <returns>A symmetric Rijndael encryptor object.</returns>
            <remarks>Use the <see cref="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.CreateDecryptor(System.Byte[],System.Byte[])"/> overload with the same signature to decrypt the result of this method.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.GetKeyType(System.Int32)">
            <summary>
            Converts a key size into an instance of the <see cref="T:Org.Mentalis.Security.Cryptography.CryptoAlgorithm"/> enum.
            </summary>
            <param name="size">The size of the key, in bits.</param>
            <returns>One of the CryptoAlgorithm values.</returns>
            <exception cref="T:System.Security.Cryptography.CryptographicException"><paramref name="size"/> is invalid.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.CanUseUnmanaged(System.Int32,System.Int32,System.Security.Cryptography.PaddingMode)">
            <summary>
            Returns a value that indicates whether the unmanaged Rijndael implementation can be used with the specified parameters.
            </summary>
            <param name="keySize">A value that indicates the size of the key, in bits.</param>
            <param name="blockSize">A value that indicates the size of the blocks, in bits.</param>
            <param name="padding">One of the <see cref="T:System.Security.Cryptography.PaddingMode"/> values.</param>
            <returns><b>true</b> if the unmanaged implementation can be used, <b>false</b> otherwise.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.CanUseUnmanaged">
            <summary>
            Returns a value that indicates whether the unmanaged Rijndael implementation can be used with the current parameters.
            </summary>
            <returns><b>true</b> if the unmanaged implementation can be used, <b>false</b> otherwise.</returns>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.m_Managed">
            <summary>Holds a managed <see cref="T:System.Security.Cryptography.Rijndael"/> instance.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.m_Provider">
            <summary>Handle of the unmanaged AES CSP.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.m_Disposed">
            <summary>Holds a boolean that indicates whether this object has been disposed.</summary>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.BlockSize">
            <summary>
            Gets or sets the block size of the cryptographic operation in bits.
            </summary>
            <value>The block size in bits.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The block size is invalid.</exception>
            <remarks>The block size is the basic unit of data that can be encrypted or decrypted in one operation. Messages longer than the block size are handled as successive blocks; messages shorter than the block size must be padded with extra bits to reach the size of a block. Valid block sizes are determined by the symmetric algorithm used.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.FeedbackSize">
            <summary>
            Gets or sets the feedback size of the cryptographic operation in bits.
            </summary>
            <value>The feedback size in bits.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The feedback size is larger than the block size.</exception>
            <remarks>The feedback size determines the amount of data that is fed back to successive encryption or decryption operations. The feedback size cannot be greater than the block size.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.IV">
            <summary>
            Gets or sets the initialization vector (IV) for the symmetric algorithm.
            </summary>
            <value>The initialization vector.</value>
            <exception cref="T:System.ArgumentNullException">An attempt is made to set the IV to a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An attempt is made to set the IV to an invalid size.</exception>
            <remarks>If this property is a null reference (<b>Nothing</b> in Visual Basic) when it is used, <see cref="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.GenerateIV"/> is called to create a new random value.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.Key">
            <summary>
            Gets or sets the secret key for the symmetric algorithm.
            </summary>
            <value>The secret key to be used for the symmetric algorithm.</value>
            <exception cref="T:System.ArgumentNullException">An attempt is made to set the key to a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <remarks>
            <p>The secret key is used both for encryption and for decryption. For a symmetric algorithm to be secure, the secret key must be known only to the sender and the receiver. The valid key sizes are specified by the particular symmetric algorithm implementation and are listed in <see cref="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.LegalKeySizes"/>.</p>
            <p>If this property is a null reference (<b>Nothing</b> in Visual Basic) when it is used, <see cref="M:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.GenerateKey"/> is called to create a new random value.</p>
            </remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.KeySize">
            <summary>
            Gets or sets the size of the secret key used by the symmetric algorithm in bits.
            </summary>
            <value>The size of the secret key used by the symmetric algorithm.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The key size is not valid.</exception>
            <remarks>The valid key sizes are specified by the particular symmetric algorithm implementation and are listed in <see cref="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.LegalKeySizes"/>.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.LegalBlockSizes">
            <summary>
            Gets the block sizes that are supported by the symmetric algorithm.
            </summary>
            <value>An array containing the block sizes supported by the algorithm.</value>
            <remarks>Only block sizes that match an entry in this array are supported by the symmetric algorithm.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.LegalKeySizes">
            <summary>
            Gets the key sizes that are supported by the symmetric algorithm.
            </summary>
            <value>An array containing the key sizes supported by the algorithm.</value>
            <remarks>Only key sizes that match an entry in this array are supported by the symmetric algorithm.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.Mode">
            <summary>
            Gets or sets the mode for operation of the symmetric algorithm.
            </summary>
            <value>The mode for operation of the symmetric algorithm.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cipher mode is not one of the CipherMode values.</exception>
            <remarks>See CipherMode for a description of specific modes.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.Padding">
            <summary>
            Gets or sets the padding mode used in the symmetric algorithm.
            </summary>
            <value>The padding mode used in the symmetric algorithm.</value>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The padding mode is not one of the PaddingMode values.</exception>
            <remarks>Most plain text messages do not consist of a number of bytes that completely fill blocks. Often, there are not enough bytes to fill the last block. When this happens, a padding string is added to the text. For example, if the block length is 64 bits and the last block contains only 40 bits, 24 bits of padding are added. See <see cref="T:System.Security.Cryptography.PaddingMode"/> for a description of specific modes.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.KeyType">
            <summary>
            Gets the <see cref="T:Org.Mentalis.Security.Cryptography.CryptoAlgorithm"/> value that corresponds with the value of the <see cref="P:Org.Mentalis.Security.Cryptography.RijndaelCryptoServiceProvider.KeySize"/> property.
            </summary>
            <returns>One of the CryptoAlgorithm values.</returns>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform">
            <summary>
            Defines the basic operations of a unmanaged Rijndael cryptographic transformation.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.#ctor(Org.Mentalis.Security.Cryptography.CryptoAlgorithm,Org.Mentalis.Security.Cryptography.CryptoMethod,System.Byte[],System.Byte[],System.Security.Cryptography.CipherMode,System.Int32,System.Security.Cryptography.PaddingMode)">
            <summary>
            Initializes a new instance of the RijndaelUnmanagedTransform class.
            </summary>
            <param name="algorithm">One of the <see cref="T:Org.Mentalis.Security.Cryptography.CryptoAlgorithm"/> values.</param>
            <param name="method">One of the <see cref="T:Org.Mentalis.Security.Cryptography.CryptoMethod"/> values.</param>
            <param name="key">The key to use.</param>
            <param name="iv">The IV to use.</param>
            <param name="mode">One of the <see cref="T:System.Security.Cryptography.CipherMode"/> values.</param>
            <param name="feedback">The feedback size of the cryptographic operation in bits.</param>
            <param name="padding">One of the <see cref="T:System.Security.Cryptography.PaddingMode"/> values.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.Finalize">
            <summary>
            Releases all unmanaged resources.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.Dispose">
            <summary>
            Releases all unmanaged resources.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.TransformBlock(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)">
            <summary>
            Transforms the specified region of the input byte array and copies the resulting transform to the specified region of the output byte array.
            </summary>
            <param name="inputBuffer">The input for which to compute the transform.</param>
            <param name="inputOffset">The offset into the input byte array from which to begin using data.</param>
            <param name="inputCount">The number of bytes in the input byte array to use as data.</param>
            <param name="outputBuffer">The output to which to write the transform.</param>
            <param name="outputOffset">The offset into the output byte array from which to begin writing data.</param>
            <returns>The number of bytes written.</returns>
            <exception cref="T:System.ObjectDisposedException">The object has been disposed.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="inputBuffer"/> or <paramref name="outputBuffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">One of the specified offsets or lengths is invalid.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs while transforming the specified data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.TransformFinalBlock(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Transforms the specified region of the specified byte array.
            </summary>
            <param name="inputBuffer">The input for which to compute the transform.</param>
            <param name="inputOffset">The offset into the byte array from which to begin using data.</param>
            <param name="inputCount">The number of bytes in the byte array to use as data.</param>
            <returns>The computed transform.</returns>
            <exception cref="T:System.ObjectDisposedException">The object has been disposed.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="inputBuffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The combination of offset and length is invalid.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs while transforming the specified data.</exception>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.m_BlockSize">
            <summary>
            Holds the block size of the algorithm.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.m_Key">
            <summary>
            Holds the <see cref="T:Org.Mentalis.Security.Cryptography.SymmetricKey"/> used for the cryptographic transformations.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.m_Method">
            <summary>
            Holds the <see cref="T:Org.Mentalis.Security.Cryptography.CryptoMethod"/> for this cryptographic operation.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.CanReuseTransform">
            <summary>
            Gets a value indicating whether the current transform can be reused.
            </summary>
            <value><b>true</b> if the current transform can be reused; otherwise, <b>false</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.CanTransformMultipleBlocks">
            <summary>
            Gets a value indicating whether multiple blocks can be transformed.
            </summary>
            <value><b>true</b> if multiple blocks can be transformed; otherwise, <b>false</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.InputBlockSize">
            <summary>
            Gets the input block size.
            </summary>
            <value>The size of the input data blocks in bytes.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RijndaelUnmanagedTransform.OutputBlockSize">
            <summary>
            Gets the output block size.
            </summary>
            <value>The size of the output data blocks in bytes.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.RIPEMD160">
            <summary>
            Represents the abstract class from which all implementations of the <see cref="T:Org.Mentalis.Security.Cryptography.RIPEMD160"/> hash algorithm inherit.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RIPEMD160.#ctor">
            <summary>
            Initializes a new instance of <see cref="T:Org.Mentalis.Security.Cryptography.RIPEMD160"/>.
            </summary>
            <remarks>You cannot create an instance of an abstract class. Application code will create a new instance of a derived class.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RIPEMD160.Create">
            <summary>
            Creates an instance of the default implementation of the <see cref="T:Org.Mentalis.Security.Cryptography.RIPEMD160"/> hash algorithm.
            </summary>
            <returns>A new instance of the RIPEMD160 hash algorithm.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RIPEMD160.Create(System.String)">
            <summary>
            Creates an instance of the specified implementation of the <see cref="T:Org.Mentalis.Security.Cryptography.RIPEMD160"/> hash algorithm.
            </summary>
            <param name="hashName">The name of the specific implementation of RIPEMD160 to use.</param>
            <returns>A new instance of the specified implementation of RIPEMD160.</returns>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.RIPEMD160Managed">
            <summary>
            Computes the <see cref="T:Org.Mentalis.Security.Cryptography.MD2"/> hash for the input data using the implementation provided by the cryptographic service provider (CSP).
            </summary>
            <remarks>Based on the papers located at <a href="http://www.esat.kuleuven.ac.be/~cosicart/ps/AB-9601/">the RIPEMD homepage</a>.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Cryptography.RIPEMD160Managed"/> class. This class cannot be inherited.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.Initialize">
            <summary>
            Initializes an instance of <see cref="T:Org.Mentalis.Security.Cryptography.RIPEMD160Managed"/>.
            </summary>
            <exception cref="T:System.ObjectDisposedException">The RIPEMD160Managed instance has been disposed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.HashCore(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Routes data written to the object into the <see cref="T:Org.Mentalis.Security.Cryptography.RIPEMD160"/> hash algorithm for computing the hash.
            </summary>
            <param name="array">The array of data bytes.</param>
            <param name="ibStart">The offset into the byte array from which to begin using data.</param>
            <param name="cbSize">The number of bytes in the array to use as data.</param>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Org.Mentalis.Security.Cryptography.RIPEMD160Managed"/> instance has been disposed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.HashFinal">
            <summary>
            Returns the computed <see cref="T:Org.Mentalis.Security.Cryptography.RIPEMD160"/> hash as an array of bytes after all data has been written to the object.
            </summary>
            <returns>The computed hash value.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Org.Mentalis.Security.Cryptography.RIPEMD160Managed"/> instance has been disposed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:Org.Mentalis.Security.Cryptography.MD2CryptoServiceProvider"/> and optionally releases the managed resources.
            </summary>
            <param name="disposing"><b>true</b> to release both managed and unmanaged resources; <b>false</b> to release only unmanaged resources.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.Finalize">
            <summary>
            Finalizes the MD2CryptoServiceProvider.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.m_ExtraData">
            <summary>
            A buffer that holds the extra data.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.m_X">
            <summary>
            The X vectors.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.m_HashValue">
            <summary>
            The current value of the hash.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.m_Length">
            <summary>
            The nubver of bytes hashed.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.m_Disposed">
            <summary>
            A boolean that indicates whether the object has been disposed or not.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.RIPEMD160Managed.InputBlockSize">
            <summary>
            When overridden in a derived class, gets the input block size.
            </summary>
            <value>The input block size.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Cryptography.SymmetricKey">
            <summary>
            Represents a symmetric key.
            </summary>
            <remarks>
            Large parts of this code are based on the article available at http://support.microsoft.com/default.aspx?scid=KB;en-us;q228786
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.#ctor(Org.Mentalis.Security.Cryptography.CryptoProvider)">
            <summary>
            Initializes a new instance of the SymmetricKey class.
            </summary>
            <param name="provider">One of the <see cref="T:Org.Mentalis.Security.Cryptography.CryptoProvider"/> values.</param>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs when acquiring the cryptographic context.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the SymmetricKey class.
            </summary>
            <param name="provider">The handle of a CSP.</param>
            <param name="key">The handle of a symmetric key.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.#ctor(Org.Mentalis.Security.Cryptography.CryptoProvider,Org.Mentalis.Security.Cryptography.CryptoAlgorithm)">
            <summary>
            Initializes a new instance of the SymmetricKey class.
            </summary>
            <param name="provider">One of the <see cref="T:Org.Mentalis.Security.Cryptography.CryptoProvider"/> values.</param>
            <param name="algorithm">One of the <see cref="T:Org.Mentalis.Security.Cryptography.CryptoAlgorithm"/> values.</param>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs when generating a new key.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.#ctor(Org.Mentalis.Security.Cryptography.CryptoProvider,Org.Mentalis.Security.Cryptography.CryptoAlgorithm,System.Byte[])">
            <summary>
            Initializes a new instance of the SymmetricKey class.
            </summary>
            <param name="provider">One of the <see cref="T:Org.Mentalis.Security.Cryptography.CryptoProvider"/> values.</param>
            <param name="algorithm">One of the <see cref="T:Org.Mentalis.Security.Cryptography.CryptoAlgorithm"/> values.</param>
            <param name="buffer">An array of bytes that contains the key to import.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.KeyFromBytes(System.Int32,Org.Mentalis.Security.Cryptography.CryptoAlgorithm,System.Byte[])">
            <summary>
            Imports a specified key.
            </summary>
            <param name="provider">The handle of the CSP.</param>
            <param name="algorithm">One of the <see cref="T:Org.Mentalis.Security.Cryptography.CryptoAlgorithm"/> values.</param>
            <param name="key">The key to import.</param>
            <returns>The handle of the symmetric key.</returns>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while importing the specified key.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.ToBytes">
            <summary>
            Returns the bytes that represent the symmetric key.
            </summary>
            <returns>An array of bytes.</returns>
            <exception cref="T:System.ObjectDisposedException">The SymmetricKey has been disposed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.ToString">
            <summary>
            Returns a string representation of the symmetric key.
            </summary>
            <returns>A string that represents the key in hexadecimal notation.</returns>
            <exception cref="T:System.ObjectDisposedException">The SymmetricKey has been disposed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.Dispose">
            <summary>
            Releases all unmanaged resources.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.Finalize">
            <summary>
            Releases all unmanaged resources.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.CreateExponentOfOneKey">
            <summary>
            Creates an exponent-of-one key.
            </summary>
            <returns>The handle of a exponent-of-one key.</returns>
            <remarks>An exponent-of-one key is a public/private key pair that doesn't encrypt data.</remarks>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while creating the key.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.CreateStaticExponentOfOneKey">
            <summary>
            Statically creates an exponent-of-one key.
            </summary>
            <returns>The handle of a exponent-of-one key.</returns>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while creating the key.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.CreateDynamicExponentOfOneKey">
            <summary>
            Dynamically creates an exponent-of-one key.
            </summary>
            <returns>The handle of a exponent-of-one key.</returns>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while creating the key.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Cryptography.SymmetricKey.GetPaddingMode(System.Security.Cryptography.PaddingMode)">
            <summary>
            Converts a <see cref="T:System.Security.Cryptography.PaddingMode"/> value to a CryptoAPI constant.
            </summary>
            <param name="mode">The PaddingMode to covnert.</param>
            <returns>The CryptoAPI constant associated with the specified padding mode.</returns>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.SymmetricKey.m_Handle">
            <summary>Holds the value of the <see cref="P:Org.Mentalis.Security.Cryptography.SymmetricKey.Handle"/> property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.SymmetricKey.m_Provider">
            <summary>Holds the value of the <see cref="P:Org.Mentalis.Security.Cryptography.SymmetricKey.Provider"/> property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.SymmetricKey.m_ExponentOfOne">
            <summary>Holds the exponent-of-one handle.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.SymmetricKey.m_PaddingMode">
            <summary>Holds the value of the <see cref="T:System.Security.Cryptography.PaddingMode"/> property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Cryptography.SymmetricKey.ExponentOfOne">
            <summary>
            A byte representation of an exponent-of-one key.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.SymmetricKey.Provider">
            <summary>
            Gets the handle of the CSP of the SymmetricKey.
            </summary>
            <value>The handle of the CSP.</value>
            <exception cref="T:System.ObjectDisposedException">The SymmetricKey has been disposed.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.SymmetricKey.Handle">
            <summary>
            Gets the handle of the SymmetricKey.
            </summary>
            <value>The handle of the key.</value>
            <exception cref="T:System.ObjectDisposedException">The SymmetricKey has been disposed.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.SymmetricKey.IV">
            <summary>
            Gets or sets the initialization vector associated with the symmetric key.
            </summary>
            <value>The initialization vector.</value>
            <exception cref="T:System.ObjectDisposedException">The SymmetricKey has been disposed.</exception>
            <exception cref="T:System.ArgumentNullException">The initialization vector is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs while getting or setting the IV.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.SymmetricKey.Mode">
            <summary>
            Gets or sets the cipher mode associated with the symmetric key.
            </summary>
            <value>The cipher mode.</value>
            <exception cref="T:System.ObjectDisposedException">The SymmetricKey has been disposed.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs while getting or setting the cipher mode.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.SymmetricKey.FeedbackSize">
            <summary>
            Gets or sets the feedback size associated with the symmetric key.
            </summary>
            <value>The feedback size.</value>
            <exception cref="T:System.ObjectDisposedException">The SymmetricKey has been disposed.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs while getting or setting the feedback size.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Cryptography.SymmetricKey.Padding">
            <summary>
            Gets or sets the padding mode associated with the symmetric key.
            </summary>
            <value>One of the <see cref="T:System.Security.Cryptography.PaddingMode"/> values.</value>
            <exception cref="T:System.ObjectDisposedException">The SymmetricKey has been disposed.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurs while setting the padding mode.</exception>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.Shared.RSAKeyTransform">
            <summary>
            We use this class because there's a bug in the RSACryptoServiceProvider class that disallows encrypting
            more than 16 bytes on Windows 98, ME and NT4.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.Shared.XBuffer">
            <summary>
            Creates a stream whose backing store is memory.
            </summary>
            <remarks>This class is created by Kevin Knoop.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.Shared.XBuffer.#ctor">
            <summary>
            Initializes a new instance of the XBuffer class with an expandable capacity initialized to zero.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.Shared.XBuffer.RemoveXBytes(System.Int32)">
            <summary>
            Removes a number of leading bytes from the buffer.
            </summary>
            <param name="aByteCount">The number of bytes to remove.</param>
            <exception cref="T:System.ArgumentException"><paramref name="aByteCount"/> is invalid.</exception>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.RequestEventArgs">
            <summary>
            Provides data for the <see cref="T:Org.Mentalis.Security.Ssl.CertRequestEventHandler"/> event.
            </summary>
            <remarks>
            This class is used when a CertRequestEventHandler delegate is called. Application code can set a <see cref="P:Org.Mentalis.Security.Ssl.RequestEventArgs.Certificate"/> instance that will then be subseuently used by the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> to send to the peer.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.RequestEventArgs.#ctor">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Ssl.RequestEventArgs"/> instance.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.RequestEventArgs.#ctor(Org.Mentalis.Security.Certificates.Certificate)">
            <summary>
            Initializes a new <see cref="T:Org.Mentalis.Security.Ssl.RequestEventArgs"/> instance.
            </summary>
            <param name="cert">A <see cref="P:Org.Mentalis.Security.Ssl.RequestEventArgs.Certificate"/> instance.</param>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.RequestEventArgs.m_Certificate">
            <summary>
            Holds the Certificate instance.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.RequestEventArgs.Certificate">
            <summary>
            Gets or sets the <see cref="P:Org.Mentalis.Security.Ssl.RequestEventArgs.Certificate"/> that should be sent to the remote host.
            </summary>
            <value>A Certificate instance.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.SecureNetworkStream">
            <summary>
            Provides the underlying stream of data for secure network access.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.#ctor(Org.Mentalis.Security.Ssl.SecureSocket)">
            <summary>
            Creates a new instance of the SecureNetworkStream class for the specified <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.
            </summary>
            <param name="socket">The SecureSocket that provides the network data. </param>
            <exception cref="T:System.ArgumentNullException"><paramref name="socket"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="socket"/> is not connected -or- the SocketType property of <paramref name="socket"/> is not SocketType.Stream.</exception>
            <exception cref="T:System.IO.IOException"><paramref name="socket"/> is a nonblocking socket.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.#ctor(Org.Mentalis.Security.Ssl.SecureSocket,System.Boolean)">
            <summary>
            Creates a new instance of the SecureNetworkStream class for the specified <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.
            </summary>
            <param name="socket">The SecureSocket that provides the network data. </param>
            <param name="ownsSocket"><b>true</b> if the socket will be owned by this NetworkStream instance; otherwise, <b>false</b>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="socket"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="socket"/> is not connected -or- the SocketType property of <paramref name="socket"/> is not SocketType.Stream.</exception>
            <exception cref="T:System.IO.IOException"><paramref name="socket"/> is a nonblocking socket.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.#ctor(Org.Mentalis.Security.Ssl.SecureSocket,System.IO.FileAccess)">
            <summary>
            Creates a new instance of the SecureNetworkStream class for the specified <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.
            </summary>
            <param name="socket">The SecureSocket that provides the network data. </param>
            <param name="access">One of the <see cref="T:System.IO.FileAccess"/> values that sets the CanRead and CanWrite properties of the SecureNetworkStream.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="socket"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="socket"/> is not connected -or- The SocketType property of socket is not SocketType.Stream.</exception>
            <exception cref="T:System.IO.IOException"><paramref name="socket"/> is a nonblocking socket.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.#ctor(Org.Mentalis.Security.Ssl.SecureSocket,System.IO.FileAccess,System.Boolean)">
            <summary>
            Creates a new instance of the SecureNetworkStream class for the specified <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.
            </summary>
            <param name="socket">The SecureSocket that provides the network data.</param>
            <param name="access">One of the FileAccess values that sets the CanRead and CanWrite properties of the SecureNetworkStream.</param>
            <param name="ownsSocket"><b>true</b> if the socket will be owned by this SecureNetworkStream instance; otherwise, <b>false</b>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="socket"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="socket"/> is not connected -or- the SocketType property of socket is not SocketType.Stream.</exception>
            <exception cref="T:System.IO.IOException"><paramref name="socket"/> is a nonblocking socket.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.Flush">
            <summary>
            Flushes data from the stream. This method is reserved for future use.
            </summary>
            <remarks>
            The Flush method implements the Stream.Flush method but, because SecureNetworkStream is not buffered, has no effect on secure network streams. Calling the Flush method will not throw an exception.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            Sets the current position of the stream to the given value. This method always throws a NotSupportedException.
            </summary>
            <param name="offset">This parameter is not used.</param>
            <param name="origin">This parameter is not used.</param>
            <returns>The position in the stream. This method is not supported.</returns>
            <exception cref="T:System.NotSupportedException">The Seek method is not supported.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.SetLength(System.Int64)">
            <summary>
            Sets the length of the stream. This method always throws a NotSupportedException.
            </summary>
            <param name="value">This parameter is not used.</param>
            <exception cref="T:System.NotSupportedException">The SetLength method is not supported.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads data from the stream.
            </summary>
            <param name="buffer">The location in memory to store data read from the stream.</param>
            <param name="offset">The location in the buffer to begin storing the data to.</param>
            <param name="size">The number of bytes to read from the stream.</param>
            <returns>The number of bytes read from the stream.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified <paramref name="offset"/> or <paramref name="size"/> exceeds the size of <paramref name="buffer"/>.</exception>
            <exception cref="T:System.IO.IOException">There is a failure while reading from the network.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Writes data to the stream.
            </summary>
            <param name="buffer">The data to write to the stream.</param>
            <param name="offset">The location in the buffer to start writing data from.</param>
            <param name="size">The number of bytes to write to the stream.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified <paramref name="offset"/> or <paramref name="size"/> exceeds the size of <paramref name="buffer"/>.</exception>
            <exception cref="T:System.IO.IOException">There is a failure while writing to the network.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.ChangeSecurityProtocol(Org.Mentalis.Security.Ssl.SecurityOptions)">
            <summary>
            Changes the security protocol. This method can only be used to 'upgrade' a connection from no-security to either SSL or TLS.
            </summary>
            <param name="options">The new <see cref="T:Org.Mentalis.Security.Ssl.SecurityOptions"/> parameters.</param>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while changing the security protocol.</exception>
            <remarks>
            Programs should only call this method if there is no active <see cref="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.Read(System.Byte[],System.Int32,System.Int32)"/> or <see cref="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.Write(System.Byte[],System.Int32,System.Int32)"/>!
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.Close">
            <summary>
            Closes the stream and optionally closes the underlying <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.
            </summary>
            <remarks>
            The Close method frees resources used by the SecureNetworkStream instance and, if the SecureNetworkStream owns the underlying socket, closes the underlying socket.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)">
            <summary>
            Begins an asynchronous read from a stream.
            </summary>
            <param name="buffer">The location in memory that stores the data from the stream.</param>
            <param name="offset">The location in buffer to begin storing the data to.</param>
            <param name="size">The maximum number of bytes to read.</param>
            <param name="callback">The delegate to call when the asynchronous call is complete.</param>
            <param name="state">An object containing additional information supplied by the client.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> representing the asynchronous call.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified <paramref name="offset"/> or <paramref name="size"/> exceeds the size of <paramref name="buffer"/>.</exception>
            <exception cref="T:System.IO.IOException">There is a failure while reading from the network.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.EndRead(System.IAsyncResult)">
            <summary>
            Handles the end of an asynchronous read.
            </summary>
            <param name="asyncResult">An <see cref="T:System.IAsyncResult"/> representing an asynchronous call. </param>
            <returns>The number of bytes read from the stream.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.IO.IOException">There is a failure while reading from the network.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)">
            <summary>
            Begins an asynchronous write to a stream.
            </summary>
            <param name="buffer">The location in memory that holds the data to send.</param>
            <param name="offset">The location in buffer to begin sending the data.</param>
            <param name="size">The size of buffer.</param>
            <param name="callback">The delegate to call when the asynchronous call is complete.</param>
            <param name="state">An object containing additional information supplied by the client.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> representing the asynchronous call.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified <paramref name="offset"/> or <paramref name="size"/> exceeds the size of <paramref name="buffer"/>.</exception>
            <exception cref="T:System.IO.IOException">There is a failure while writing to the network.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.OnBytesSent(System.IAsyncResult)">
            <summary>
            Called when the bytes have been sent to the remote server
            </summary>
            <param name="asyncResult">The <see cref="T:System.IAsyncResult"/> representing the asynchronous call.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.OnWriteComplete(System.Exception)">
            <summary>
            Called when all bytes have been sent to the remote host, or when a network error occurred.
            </summary>
            <param name="e">The error that occurred.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureNetworkStream.EndWrite(System.IAsyncResult)">
            <summary>
            Handles the end of an asynchronous write.
            </summary>
            <param name="asyncResult">The <see cref="T:System.IAsyncResult"/> representing the asynchronous call.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="asyncResult"/> parameter was not returned by a call to the BeginWrite method.</exception>
            <exception cref="T:System.IO.IOException">An error occurs while writing to the network.</exception>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureNetworkStream.m_WriteResult">
            <summary>Holds the value of the <see cref="P:Org.Mentalis.Security.Ssl.SecureNetworkStream.WriteResult"/> property</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureNetworkStream.m_OwnsSocket">
            <summary><b>true</b> if the SecureNetworkStream owns the SecureSocket, <b>false</b> otherwise.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureNetworkStream.m_CanRead">
            <summary>Holds the value of the <see cref="P:Org.Mentalis.Security.Ssl.SecureNetworkStream.CanRead"/> property</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureNetworkStream.m_CanWrite">
            <summary>Holds the value of the <see cref="P:Org.Mentalis.Security.Ssl.SecureNetworkStream.CanWrite"/> property</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureNetworkStream.m_Socket">
            <summary>Holds the value of the <see cref="P:Org.Mentalis.Security.Ssl.SecureNetworkStream.Socket"/> property</summary>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureNetworkStream.CanRead">
            <summary>
            Gets a value that indicates whether the current stream supports writing.
            </summary>
            <value><b>true</b> if data can be written to the stream; otherwise, <b>false</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureNetworkStream.CanWrite">
            <summary>
            Gets a value that indicates whether the current stream supports writing.
            </summary>
            <value><b>true</b> if data can be written to the stream; otherwise, <b>false</b>.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureNetworkStream.CanSeek">
            <summary>
            Gets a value indicating whether the stream supports seeking. This property always returns false.
            </summary>
            <value><b>false</b> to indicate that SecureNetworkStream cannot seek a specific location in the stream.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureNetworkStream.Length">
            <summary>
            The length of the data available on the stream. This property always throws a NotSupportedException.
            </summary>
            <value>The length of the data available on the stream. This property is not supported.</value>
            <exception cref="T:System.NotSupportedException">The Length property is not supported.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureNetworkStream.Position">
            <summary>
            Gets or sets the current position in the stream. This property always throws a NotSupportedException.
            </summary>
            <value>The current position in the stream. This property is not supported.</value>
            <exception cref="T:System.NotSupportedException">The Position property is not supported.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureNetworkStream.Socket">
            <summary>
            Gets the underlying network connection.
            </summary>
            <value>A <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> that represents the underlying network connection.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureNetworkStream.WriteResult">
            <summary>
            Holds the <see cref="T:Org.Mentalis.Security.Ssl.Shared.TransferItem"/> object returned by BeginWrite.
            </summary>
            <value>A <see cref="T:Org.Mentalis.Security.Ssl.Shared.TransferItem"/> object.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.SecureSocket">
            <summary>
            Implements the Berkeley sockets interface and optionally encrypts/decrypts transmitted data.
            </summary>
            <remarks>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Any instance members are not guaranteed to be thread safe.</remarks>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.VirtualSocket">
            <summary>
            Implements the Berkeley sockets interface.
            </summary>
            <remarks>
            The VirtualSocket class implements exactly the same methods as the System.Net.Sockets.Socket class,
            however all these methods are marked as virtual so they can be overridden in derived classes.
            In addition to the constructor specified by the Socket class, the VirtualSocket class also
            has a constructor that accepts an already created Socket; this can be very useful is you have
            to override the Accept and BeginAccept/EndAccept methods in a derived class.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.#ctor(System.Net.Sockets.AddressFamily,System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType)">
            <summary>
            Initializes a new instance of the VirtualSocket class.
            </summary>
            <param name="addressFamily">One of the <see cref="P:Org.Mentalis.Security.Ssl.VirtualSocket.AddressFamily"/> values.</param>
            <param name="socketType">One of the <see cref="P:Org.Mentalis.Security.Ssl.VirtualSocket.SocketType"/> values.</param>
            <param name="protocolType">One of the <see cref="P:Org.Mentalis.Security.Ssl.VirtualSocket.ProtocolType"/> values.</param>
            <exception cref="T:System.Net.Sockets.SocketException">The combination of <paramref name="addressFamily"/>, <paramref name="socketType"/>, and <paramref name="protocolType"/> results in an invalid socket.</exception>
            <remarks>The <paramref name="addressFamily"/> parameter specifies the addressing scheme that the VirtualSocket uses, the <paramref name="socketType"/> parameter specifies the type of the VirtualSocket, and <paramref name="protocolType"/> specifies the protocol used by the VirtualSocket. The three parameters are not independent. Some address families restrict which protocols can be used with them, and often the socket type is implicit in the protocol. If the combination of address family, socket type, and protocol type results in an invalid VirtualSocket, a SocketException is thrown.<br>The AddressFamily enumeration defines the valid address families, the SocketType enumeration defines the valid socket types, and the ProtocolType enumeration defines the valid protocol types.</br></remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.#ctor(System.Net.Sockets.Socket)">
            <summary>
            Initializes a new instance of the VirtualSocket class.
            </summary>
            <param name="internalSocket">The accepted socket.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="internalSocket"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Accept">
            <summary>
            Creates a new VirtualSocket to handle an incoming connection request.
            </summary>
            <returns>A VirtualSocket to handle an incoming connection request.</returns>
            <exception cref="T:System.Net.Sockets.SocketException">The VirtualSocket is invalid.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>The Accept method extracts the first connection request from the queue of pending requests and creates a new VirtualSocket to handle it.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.InternalAccept">
            <summary>
            Creates a new Socket to handle an incoming connection request.
            </summary>
            <returns>A Socket to handle an incoming connection request.</returns>
            <exception cref="T:System.Net.Sockets.SocketException">The VirtualSocket is invalid.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>The InternalAccept method extracts the first connection request from the queue of pending requests and creates a new <see cref="T:System.Net.Sockets.Socket"/> to handle it.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginAccept(System.AsyncCallback,System.Object)">
            <summary>
            Begins an asynchronous request to create a new VirtualSocket to accept an incoming connection request.
            </summary>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate.</param>
            <param name="state">An object containing state information for this request. </param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous VirtualSocket creation.</returns>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while creating the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>The BeginAccept method starts an asynchronous request to create a VirtualSocket to handle an incoming connection request. You must create a callback method that implements the AsyncCallback delegate. This callback method should use the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.EndAccept(System.IAsyncResult)"/> method to retrieve the VirtualSocket.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)">
            <summary>
            Begins an asynchronous request for a connection to a network device.
            </summary>
            <param name="remoteEP">An EndPoint that represents the remote device.</param>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate.</param>
            <param name="state">An object that contains state information for this request. </param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous connection.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="remoteEP"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while creating the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>The BeginConnect method starts an asynchronous request for a remote host connection. You must create a callback method that implements the AsyncCallback delegate. This callback method should use the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.EndConnect(System.IAsyncResult)"/> method to return the VirtualSocket.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
            <summary>
            Begins to asynchronously receive data from a connected VirtualSocket.
            </summary>
            <param name="buffer">The storage location for the received data.</param>
            <param name="offset">The zero-based position in the buffer parameter at which to store the received data.</param>
            <param name="size">The number of bytes to receive.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate.</param>
            <param name="state">An object containing state information for this request.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous read.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">VirtualSocket has been closed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="offset"/> is outside the bounds of buffer or size is either smaller or larger than the buffer size.</exception>
            <remarks>The BeginReceive method starts asynchronously reading data from a VirtualSocket. You must create a callback method that implements the AsyncCallback delegate. This callback method should use the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.EndReceive(System.IAsyncResult)"/> method to return the data read from the VirtualSocket.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)">
            <summary>
            Begins to asynchronously receive data from a specified network device.
            </summary>
            <param name="buffer">The storage location for the received data.</param>
            <param name="offset">The zero-based position in the buffer parameter at which to store the data.</param>
            <param name="size">The number of bytes to receive.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <param name="remoteEP">An <see cref="T:System.Net.EndPoint"/> that represents the source of the data.</param>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate.</param>
            <param name="state">An object containing state information for this request.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous read.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).<br>-or-</br>
            <br><paramref name="remoteEP"/> is a null reference (<b>Nothing</b> in Visual Basic).</br><br>-or-</br><br><paramref name="offset"/> is outside the bounds of buffer.</br></exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified offset or size exceeds the size of buffer.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
            <summary>
            Sends data asynchronously to a connected VirtualSocket.
            </summary>
            <param name="buffer">The data to send.</param>
            <param name="offset">The zero-based position in the buffer parameter at which to begin sending data.</param>
            <param name="size">The number of bytes to send.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate.</param>
            <param name="state">An object containing state information for this request.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous send.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified offset or size exceeds the size of buffer.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>The BeginSend method starts asynchronously sending data through a socket. You must create a callback method that implements the AsyncCallback delegate. This callback method should use the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.EndSend(System.IAsyncResult)"/> method to complete sending data.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginSendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object)">
            <summary>
            Sends data asynchronously to a specific remote host.
            </summary>
            <param name="buffer">The data to send. </param>
            <param name="offset">The zero-based position in the buffer parameter at which to begin sending data.</param>
            <param name="size">The number of bytes to send. </param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <param name="remoteEP">An <see cref="T:System.Net.EndPoint"/> that represents the remote device. </param>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate. </param>
            <param name="state">An object containing state information for this request.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous send.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).<br>-or-</br><br><paramref name="remoteEP"/> is a null reference (<b>Nothing</b> in Visual Basic).</br></exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified offset or size exceeds the size of buffer.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>The BeginSendTo method starts asynchronously sending data through a socket. You must create a callback method that implements the AsyncCallback delegate. This callback method should use the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.EndSendTo(System.IAsyncResult)"/> method to complete sending data.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Bind(System.Net.EndPoint)">
            <summary>
            Associates a VirtualSocket with a local endpoint.
            </summary>
            <param name="localEP">The local <see cref="T:System.Net.EndPoint"/> to associate with the VirtualSocket.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="localEP"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>If you want to use a specific local endpoint, you can call the Bind method before you call the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.Listen(System.Int32)"/> or <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.Connect(System.Net.EndPoint)"/> methods.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Close">
            <summary>
            Forces a VirtualSocket connection to close.
            </summary>
            <remarks><p>The <see cref="P:Org.Mentalis.Security.Ssl.VirtualSocket.Connected"/> property is set to <b>false</b> when the socket is closed.</p><p>The application should call <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.Shutdown(System.Net.Sockets.SocketShutdown)"/> before calling Close to ensure that all pending data is sent or received before the VirtualSocket is closed.</p></remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Connect(System.Net.EndPoint)">
            <summary>
            Establishes a connection to a remote device.
            </summary>
            <param name="remoteEP">An <see cref="T:System.Net.EndPoint"/> that represents the remote device.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="remoteEP"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>The Connect method establishes a network connection between <see cref="P:Org.Mentalis.Security.Ssl.VirtualSocket.LocalEndPoint"/> and the device identified by <paramref name="remoteEP"/>. Once the connection has been made, you can send data to the remote device with the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.Send(System.Byte[])"/> method, or receive data from the remote device with the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.Receive(System.Byte[])"/> method.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.EndAccept(System.IAsyncResult)">
            <summary>
            Ends an asynchronous request to create a new VirtualSocket to accept an incoming connection request.
            </summary>
            <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
            <returns>A VirtualSocket to handle the incoming connection.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> was not created by a call to <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginAccept(System.AsyncCallback,System.Object)"/>.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>The EndAccept method completes a request for a connection that was started with the BeginAccept method.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.InternalEndAccept(System.IAsyncResult)">
            <summary>
            Ends an asynchronous request to create a new <see cref="T:System.Net.Sockets.Socket"/> to accept an incoming connection request.
            </summary>
            <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
            <returns>A VirtualSocket to handle the incoming connection.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> was not created by a call to <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginAccept(System.AsyncCallback,System.Object)"/>.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>The InternalEndAccept method completes a request for a connection that was started with the InternalBeginAccept method.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.EndConnect(System.IAsyncResult)">
            <summary>
            Ends a pending asynchronous connection request.
            </summary>
            <param name="asyncResult">Stores state information for this asynchronous operation as well as any user-defined data.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> was not returned by a call to the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)"/> method.</exception>
            <exception cref="T:System.InvalidOperationException">EndConnect was previously called for the asynchronous connection.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>To maintain the asynchronous nature of the operation, call this method from the callback delegate. You can pass either the <see cref="T:System.IAsyncResult"/> returned from BeginConnect or the callback delegate used as an input parameter to BeginConnect as the asyncresult parameter. The EndConnect method blocks.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.EndReceive(System.IAsyncResult)">
            <summary>
            Ends a pending asynchronous read.
            </summary>
            <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> was not returned by a call to the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)"/> method.</exception>
            <exception cref="T:System.InvalidOperationException">EndReceive was previously called for the asynchronous read.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>To maintain the asynchronous nature of the operation, call this method from the callback delegate. You can pass either the <see cref="T:System.IAsyncResult"/> returned from <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)"/> or the callback delegate used as an input parameter to BeginReceive as the asyncResult parameter. The EndReceive method blocks until the read ends.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)">
            <summary>
            Ends a pending asynchronous read from a specific endpoint.
            </summary>
            <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
            <param name="endPoint">The source <see cref="T:System.Net.EndPoint"/>.</param>
            <returns>If successful, the number of bytes received. If unsuccessful, returns 0 if the connection is closed by the remote host.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> was not returned by a call to the BeginReceiveFrom method.</exception>
            <exception cref="T:System.InvalidOperationException">EndReceiveFrom was previously called for the asynchronous read.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>To maintain the asynchronous nature of the operation, call this method from the callback delegate. You can pass either the <see cref="T:System.IAsyncResult"/> returned from <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)"/> or the callback delegate used as an input parameter to BeginReceiveFrom. as the asyncResult parameter. The EndReceiveFrom method frees any resources allocated by the BeginReceiveFrom method. The EndReceiveFrom method blocks until read ends.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.EndSend(System.IAsyncResult)">
            <summary>
            Ends a pending asynchronous send.
            </summary>
            <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
            <returns>If successful, the number of bytes sent to the VirtualSocket; otherwise, an invalid VirtualSocket error.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> was not returned by a call to the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)"/> method.</exception>
            <exception cref="T:System.InvalidOperationException">EndSend was previously called for the asynchronous read.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>To maintain the asynchronous nature of the operation, call this method from the callback delegate. You can pass either the <see cref="T:System.IAsyncResult"/> returned from <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)"/> or the callback delegate used as an input parameter to BeginSend as the asyncResult parameter. The EndSend method frees any resources allocated by the BeginSend method. The EndSend method blocks until the send ends.<br>The EndSend method frees any resources allocated by the BeginSend method.</br></remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.EndSendTo(System.IAsyncResult)">
            <summary>
            Ends a pending asynchronous send to a specific location.
            </summary>
            <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data .</param>
            <returns>If successful, the number of bytes sent; otherwise, an invalid VirtualSocket error.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> was not returned by a call to the <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginSendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object)"/> method.</exception>
            <exception cref="T:System.InvalidOperationException">EndSendTo was previously called for the asynchronous read.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks><br>To maintain the asynchronous nature of the operation, call this method from the callback delegate. You can pass either the <see cref="T:System.IAsyncResult"/> returned from <see cref="M:Org.Mentalis.Security.Ssl.VirtualSocket.BeginSendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object)"/> or the callback delegate used as an input parameter to BeginSendTo as the asyncResult parameter. The EndSendTo method frees any resources allocated by the BeginSendTo method. The EndSendTo method blocks until send is complete.</br><br>The EndSendTo method frees any resources allocated by the BeginSendTo method.</br></remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.GetHashCode">
            <summary>
            This member overrides Object.GetHashCode.
            </summary>
            <returns>A hash code for the current VirtualSocket.</returns>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.GetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName)">
            <summary>
            Gets the value of a specified socket option.
            </summary>
            <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel"/> values.</param>
            <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName"/> values.</param>
            <returns>The value of the option. When the optionName parameter is set to Linger the return value is an instance of the LingerOption. When optionName is set to AddMembership or DropMembership, the return value is an instance of the MulticastOption. When optionName is any other value, the return value is an integer.</returns>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>VirtualSocket options determine the behavior of the current instance. Upon successful completion, GetSocketOption returns an object describing the requested option. For example, if you specify Linger as the option, a LingerOption is returned.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.GetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Byte[])">
            <summary>
            Gets the specified VirtualSocket option setting.
            </summary>
            <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel"/> values.</param>
            <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName"/> values.</param>
            <param name="optionValue">The buffer that is to receive the option setting.</param>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>Socket options determine the behavior of the current Socket. Upon successful completion of this method, the array specified by the optionValue parameter contains the value of the specified Socket option. When the length of the optionValue array is smaller than the number of bytes required to store the value of the specified Socket option, a <see cref="T:System.Net.Sockets.SocketException"/> is thrown.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.GetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)">
            <summary>
            Returns the value of the specified Socket option and returns in an array.
            </summary>
            <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel"/> values.</param>
            <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName"/> values.</param>
            <param name="optionLength">The length, in bytes, of the expected return value.</param>
            <returns>An array of bytes containing the value of the socket option.</returns>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>The optionLength parameter sets the maximum size of the returned byte array. If the option value requires fewer bytes, the array will contain only that many bytes. If the option value requires more bytes, a SocketException will be thrown.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.IOControl(System.Int32,System.Byte[],System.Byte[])">
            <summary>
            Sets low-level operating modes for the VirtualSocket.
            </summary>
            <param name="ioControlCode">The control code of the operation to perform.</param>
            <param name="optionInValue">The input data required by the operation.</param>
            <param name="optionOutValue">The output data returned by the operation.</param>
            <returns>The number of bytes in optionOutValue parameter.</returns>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>The IOControl method provides low-level access to the operating system socket underlying the current instance of the VirtualSocket class. For more information about IOControl, see the WSAIoct documentation in MSDN.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Listen(System.Int32)">
            <summary>
            Places a VirtualSocket in a listening state.
            </summary>
            <param name="backlog">The Maximum length of the queue of pending connections.</param>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>In a listening state, the VirtualSocket will poll for incoming connection attempts. If you want to listen using a specific network interface on a specific port, you must call the Bind method first.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Poll(System.Int32,System.Net.Sockets.SelectMode)">
            <summary>
            Determines the status of the VirtualSocket.
            </summary>
            <param name="microSeconds">The time to wait for a response, in microseconds.</param>
            <param name="mode">One of the <see cref="T:System.Net.Sockets.SelectMode"/> values.</param>
            <returns>See the Socket documentation for the return values.</returns>
            <exception cref="T:System.NotSupportedException">The mode parameter is not one of the SelectMode values.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>Set microSeconds parameter to a negative integer if you would like to wait indefinitely for a response.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Receive(System.Byte[])">
            <summary>
            Receives data from a connected VirtualSocket in a specific location of the receive buffer.
            </summary>
            <param name="buffer">The storage location for received data.</param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>This overload only requires you to provide a receive buffer. The offset defaults to 0, size defaults to the buffer length, and the socketFlags value defaults to None.</p>
            <p>The Blocking determines the behavior of this method when no incoming data is available. When false, a SocketException is thrown. When true, this method blocks and waits for data to arrive. For Stream Socket types, if the remote Socket was shut down gracefully, and all the data was received, this method immediately returns zero, regardless of the blocking state.</p>
            <p>If you are using a message-oriented Socket, and the message is larger than the size of the buffer parameter, buffer is filled with the first part of the message, and a SocketException is thrown. With unreliable protocols the excess data is lost; with reliable protocols, the data is retained by the service provider.</p>
            <p><b>Note</b>   If you specify the OutOfBand flag as the socketFlags parameter, and the Socket is configured for in-line reception of out-of-band (OOB) data (using the OutOfBandInline option) and OOB data is available, then only OOB data is returned. When the Peek flag is specified as the socketFlags parameter, available data is copied into the receive buffer but is not removed from the system buffer.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Receive(System.Byte[],System.Net.Sockets.SocketFlags)">
            <summary>
            Receives data from a connected VirtualSocket in a specific location of the receive buffer.
            </summary>
            <param name="buffer">The storage location for received data.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values. </param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>This overload only requires you to provide a receive buffer and the necessary SocketFlags. The offset defaults to 0, and the size defaults to the buffer length.</p>
            <p>The Blocking determines the behavior of this method when no incoming data is available. When false, a SocketException is thrown. When true, this method blocks and waits for data to arrive. For Stream Socket types, if the remote Socket was shut down gracefully, and all the data was received, this method immediately returns zero, regardless of the blocking state.</p>
            <p>If you are using a message-oriented Socket, and the message is larger than the size of the buffer parameter, buffer is filled with the first part of the message, and a SocketException is thrown. With unreliable protocols the excess data is lost; with reliable protocols, the data is retained by the service provider.</p>
            <p><b>Note</b>   If you specify the OutOfBand flag as the socketFlags parameter, and the Socket is configured for in-line reception of out-of-band (OOB) data (using the OutOfBandInline option) and OOB data is available, then only OOB data is returned. When the Peek flag is specified as the socketFlags parameter, available data is copied into the receive buffer but is not removed from the system buffer.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)">
            <summary>
            Receives data from a connected VirtualSocket in a specific location of the receive buffer.
            </summary>
            <param name="buffer">The storage location for received data.</param>
            <param name="size">The number of bytes to receive.</param>
            <param name="socketFlags">A bitwise combination of the SocketFlags values. </param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The size exceeds the size of buffer.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>This overload only requires you to provide a receive buffer, the number of bytes you want to send, and the necessary SocketFlags. The offset defaults to 0.</p>
            <p>The Blocking determines the behavior of this method when no incoming data is available. When false, a SocketException is thrown. When true, this method blocks and waits for data to arrive. For Stream Socket types, if the remote Socket was shut down gracefully, and all the data was received, this method immediately returns zero, regardless of the blocking state.</p>
            <p>If you are using a message-oriented Socket, and the message is larger than the size of the buffer parameter, buffer is filled with the first part of the message, and a SocketException is thrown. With unreliable protocols the excess data is lost; with reliable protocols, the data is retained by the service provider.</p>
            <p><b>Note</b>   If you specify the OutOfBand flag as the socketFlags parameter, and the Socket is configured for in-line reception of out-of-band (OOB) data (using the OutOfBandInline option) and OOB data is available, then only OOB data is returned. When the Peek flag is specified as the socketFlags parameter, available data is copied into the receive buffer but is not removed from the system buffer.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Receive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
            <summary>
            Receives data from a connected VirtualSocket in a specific location of the receive buffer.
            </summary>
            <param name="buffer">The storage location for received data.</param>
            <param name="offset">The location in buffer to store the received data. </param>
            <param name="size">The number of bytes to receive.</param>
            <param name="socketFlags">A bitwise combination of the SocketFlags values. </param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified offset or size exceeds the size of buffer.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>The Blocking determines the behavior of this method when no incoming data is available. When false, a SocketException is thrown. When true, this method blocks and waits for data to arrive. For Stream Socket types, if the remote Socket was shut down gracefully, and all the data was received, this method immediately returns zero, regardless of the blocking state.</p>
            <p>If you are using a message-oriented Socket, and the message is larger than the size of the buffer parameter, buffer is filled with the first part of the message, and a SocketException is thrown. With unreliable protocols the excess data is lost; with reliable protocols, the data is retained by the service provider.</p>
            <p><b>Note</b>   If you specify the OutOfBand flag as the socketFlags parameter, and the Socket is configured for in-line reception of out-of-band (OOB) data (using the OutOfBandInline option) and OOB data is available, then only OOB data is returned. When the Peek flag is specified as the socketFlags parameter, available data is copied into the receive buffer but is not removed from the system buffer.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.ReceiveFrom(System.Byte[],System.Net.EndPoint@)">
            <summary>
            Receives a datagram in a specific location in the data buffer and stores the endpoint.
            </summary>
            <param name="buffer">The storage location for received data.</param>
            <param name="remoteEP">An <see cref="T:System.Net.EndPoint"/>, passed by reference, that represents the remote server.</param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>This overload only requires you to provide a receive buffer, and EndPoint representing the remote host. The offset defaults to 0. The size defaults to the buffer length and the socketFlags value defaults to None.</p>
            <p>If you use a connectionless protocol, the remoteEP parameter contains the EndPoint associated with the Socket that sent the data. If you use a connection-oriented protocol, remoteEP is left unchanged. You must set the LocalEndPoint property before calling this method. When no incoming data is available, and the Blocking property is false, a SocketException is thrown. When Blocking is true, this method blocks and waits for data to arrive. For Stream Socket types, if the remote Socket was shut down gracefully, and all data was received, this method immediately returns zero, regardless of the blocking state.</p>
            <p>If you are using a message-oriented Socket, and the message is larger than the size of the buffer parameter, then buffer is filled with the first part of the message, and a SocketException is thrown. With unreliable protocols the excess data is lost; with reliable protocols, the data is retained by the service provider.</p>
            <p>When the OutOfBand flag is specified as the socketFlags parameter and the Socket is configured for in-line reception of out-of-band (OOB) data (using OutOfBandInline) and OOB data is available, only OOB data is returned. When the SocketFlags. Peek flag is specified as the socketFlags parameter, available data is copied into the receive buffer but not removed from the system buffer.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.ReceiveFrom(System.Byte[],System.Net.Sockets.SocketFlags,System.Net.EndPoint@)">
            <summary>
            Receives a datagram in a specific location in the data buffer and stores the endpoint.
            </summary>
            <param name="buffer">The storage location for received data.</param>
            <param name="socketFlags">A bitwise combination of the SocketFlags values.</param>
            <param name="remoteEP">An <see cref="T:System.Net.EndPoint"/>, passed by reference, that represents the remote server.</param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>This overload only requires you to provide a receive buffer, the necessary SocketFlags, and the EndPoint representing the remote host. The offset defaults to 0. The size defaults to the buffer length.</p>
            <p>If you use a connectionless protocol, the remoteEP parameter contains the EndPoint associated with the Socket that sent the data. If you use a connection-oriented protocol, remoteEP is left unchanged. You must set the LocalEndPoint property before calling this method. When no incoming data is available, and the Blocking property is false, a SocketException is thrown. When Blocking is true, this method blocks and waits for data to arrive. For Stream Socket types, if the remote Socket was shut down gracefully, and all data was received, this method immediately returns zero, regardless of the blocking state.</p>
            <p>If you are using a message-oriented Socket, and the message is larger than the size of the buffer parameter, then buffer is filled with the first part of the message, and a SocketException is thrown. With unreliable protocols the excess data is lost; with reliable protocols, the data is retained by the service provider.</p>
            <p>When the OutOfBand flag is specified as the socketFlags parameter and the Socket is configured for in-line reception of out-of-band (OOB) data (using OutOfBandInline) and OOB data is available, only OOB data is returned. When the SocketFlags. Peek flag is specified as the socketFlags parameter, available data is copied into the receive buffer but not removed from the system buffer.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.ReceiveFrom(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@)">
            <summary>
            Receives a datagram in a specific location in the data buffer and stores the endpoint.
            </summary>
            <param name="buffer">The storage location for received data.</param>
            <param name="size">The number of bytes to receive.</param>
            <param name="socketFlags">A bitwise combination of the SocketFlags values.</param>
            <param name="remoteEP">An <see cref="T:System.Net.EndPoint"/>, passed by reference, that represents the remote server.</param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The size parameter exceeds the size of buffer.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>This overload only requires you to provide a receive buffer, the number of bytes you want to receive, the necessary SocketFlags, and the EndPoint representing the remote host. The offset defaults to 0.</p>
            <p>If you use a connectionless protocol, the remoteEP parameter contains the EndPoint associated with the Socket that sent the data. If you use a connection-oriented protocol, remoteEP is left unchanged. You must set the LocalEndPoint property before calling this method. When no incoming data is available, and the Blocking property is false, a SocketException is thrown. When Blocking is true, this method blocks and waits for data to arrive. For Stream Socket types, if the remote Socket was shut down gracefully, and all data was received, this method immediately returns zero, regardless of the blocking state.</p>
            <p>If you are using a message-oriented Socket, and the message is larger than the size of the buffer parameter, then buffer is filled with the first part of the message, and a SocketException is thrown. With unreliable protocols the excess data is lost; with reliable protocols, the data is retained by the service provider.</p>
            <p>When the OutOfBand flag is specified as the socketFlags parameter and the Socket is configured for in-line reception of out-of-band (OOB) data (using OutOfBandInline) and OOB data is available, only OOB data is returned. When the SocketFlags. Peek flag is specified as the socketFlags parameter, available data is copied into the receive buffer but not removed from the system buffer.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.ReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@)">
            <summary>
            Receives a datagram in a specific location in the data buffer and stores the endpoint.
            </summary>
            <param name="buffer">The storage location for received data.</param>
            <param name="offset">The position in the buffer parameter to store the received data.</param>
            <param name="size">The number of bytes to receive.</param>
            <param name="socketFlags">A bitwise combination of the SocketFlags values.</param>
            <param name="remoteEP">An <see cref="T:System.Net.EndPoint"/>, passed by reference, that represents the remote server.</param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified offset or size exceeds the size of buffer.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>If you use a connectionless protocol, the remoteEP parameter contains the EndPoint associated with the Socket that sent the data. If you use a connection-oriented protocol, remoteEP is left unchanged. You must set the LocalEndPoint property before calling this method. When no incoming data is available, and the Blocking property is false, a SocketException is thrown. When Blocking is true, this method blocks and waits for data to arrive. For Stream Socket types, if the remote Socket was shut down gracefully, and all data was received, this method immediately returns zero, regardless of the blocking state.</p>
            <p>If you are using a message-oriented Socket, and the message is larger than the size of the buffer parameter, then buffer is filled with the first part of the message, and a SocketException is thrown. With unreliable protocols the excess data is lost; with reliable protocols, the data is retained by the service provider.</p>
            <p>When the OutOfBand flag is specified as the socketFlags parameter and the Socket is configured for in-line reception of out-of-band (OOB) data (using OutOfBandInline) and OOB data is available, only OOB data is returned. When the SocketFlags. Peek flag is specified as the socketFlags parameter, available data is copied into the receive buffer but not removed from the system buffer.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Send(System.Byte[])">
            <summary>
            Sends data to a connected VirtualSocket, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <returns>The number of bytes sent to the VirtualSocket.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>Use Send for connection-oriented protocols only. For connectionless protocols, either use SendTo or call Connect first, and then call Send. This overload only requires you to provide a data buffer. The offset defaults to 0, the size defaults to the buffer length, and SocketFlags value defaults to None.</p>
            <p>You must set the LocalEndPoint property of the current instance before calling this method.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Send(System.Byte[],System.Net.Sockets.SocketFlags)">
            <summary>
            Sends data to a connected VirtualSocket, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <param name="socketFlags">A bitwise combination of the SocketFlags values. </param>
            <returns>The number of bytes sent to the VirtualSocket.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>Use Send for connection-oriented protocols only. For connectionless protocols, either use SendTo or call Connect first, and then call Send.</p>
            <p>This overload only requires you to provide a data buffer and SocketFlags. The offset defaults to 0, and the size parameter defaults to the buffer length.</p>
            <p>You must set the LocalEndPoint property of the current instance before calling this method.</p>
            <p>If you specify the DontRoute flag as the socketflags parameter, the data you are sending will not be routed. If you specify the OutOfBand flag as the socketflags parameter, only out-of-band (OOB) data is sent.</p>
            <p>If you set the Blocking property to true, and buffer space is not available within the underlying protocol, this method blocks.</p>
            <p>If you are using a message-oriented Socket, and the size of the buffer is greater than the maximum message size of the underlying protocol, no data is sent and Socket will throw a SocketException.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)">
            <summary>
            Sends data to a connected VirtualSocket, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <param name="size">The number of bytes to send. </param>
            <param name="socketFlags">A bitwise combination of the SocketFlags values. </param>
            <returns>The number of bytes sent to the VirtualSocket.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The size parameter exceeds the size of buffer.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>Use Send for connection-oriented protocols only. For connectionless protocols, either use SendTo or call Connect first, and then call Send.</p>
            <p>This overload only requires you to provide a data buffer, SocketFlags, and the number bytes to be sent. The offset defaults to 0.</p>
            <p>You must set the LocalEndPoint property of the current instance before calling this method.</p>
            <p>If you specify the DontRoute flag as the socketflags parameter, the data you are sending will not be routed. If you specify the OutOfBand flag as the socketflags parameter, only out-of-band (OOB) data is sent.</p>
            <p>If you set the Blocking property to true, and buffer space is not available within the underlying protocol, this method blocks.</p>
            <p>If you are using a message-oriented Socket, and the size of the buffer is greater than the maximum message size of the underlying protocol, no data is sent and Socket will throw a SocketException.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Send(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
            <summary>
            Sends data to a connected VirtualSocket, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <param name="offset">The position in the data buffer to begin sending data.</param>
            <param name="size">The number of bytes to send. </param>
            <param name="socketFlags">A bitwise combination of the SocketFlags values. </param>
            <returns>The number of bytes sent to the VirtualSocket.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The offset or size parameter exceeds the size of buffer.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>Use Send for connection-oriented protocols only. For connectionless protocols, either use SendTo or call Connect first, and then call Send.</p>
            <p>This overload gives you the flexibility to specify the Send starting position in the data buffer, the number bytes you are sending, and the necessary SocketFlags.</p>
            <p>You must set the LocalEndPoint property of the current instance before calling this method.</p>
            <p>If you specify the DontRoute flag as the socketflags parameter, the data you are sending will not be routed. If you specify the OutOfBand flag as the socketflags parameter, only out-of-band (OOB) data is sent.</p>
            <p>If you set the Blocking property to true, and buffer space is not available within the underlying protocol, this method blocks.</p>
            <p>If you are using a message-oriented Socket, and the size of the buffer is greater than the maximum message size of the underlying protocol, no data is sent and Socket will throw a SocketException.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.SendTo(System.Byte[],System.Net.EndPoint)">
            <summary>
            Sends data to a specific endpoint, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <param name="remoteEP">The <see cref="T:System.Net.EndPoint"/> representing the destination location for the data.</param>
            <returns>The number of bytes sent.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).<br>-or-</br><br>The remoteEP parameter is a null reference (Nothing).</br></exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>If you are using a connection-oriented protocol or a connected Socket using a connectionless protocol, remoteEP overrides the endpoint specified in RemoteEndPoint. If you are using an unconnected Socket with a connectionless protocol, this method sets the LocalEndPoint property of the current instance to a value determined by the protocol. You must subsequently receive data on the LocalEndPoint. This overload only requires you to provide a data buffer, and the remote EndPoint. The offset defaults to 0. The size defaults to the buffer length, and SocketFlags value defaults to None.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.SendTo(System.Byte[],System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
            <summary>
            Sends data to a specific endpoint, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <param name="socketFlags">A bitwise combination of the SocketFlags values.</param>
            <param name="remoteEP">The <see cref="T:System.Net.EndPoint"/> representing the destination location for the data.</param>
            <returns>The number of bytes sent.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).<br>-or-</br><br>The remoteEP parameter is a null reference (Nothing).</br></exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>If you are using a connection-oriented protocol or a connected Socket using a connectionless protocol, remoteEP overrides the endpoint specified in RemoteEndPoint. If you are using an unconnected Socket with a connectionless protocol, this method sets the LocalEndPoint property of the current instance to a value determined by the protocol. You must subsequently receive data on the LocalEndPoint.</p>
            <p>This overload only requires you to provide a data buffer, SocketFlags, and the remote EndPoint. The offset defaults to 0, and size defaults to the buffer length.</p>
            <p>Note   If you specify the DontRoute flag as the socketflags parameter, the data you are sending will not be routed. If you specify the OutOfBand flag as the socketflags parameter, only out-of-band (OOB) data is sent. If you set the Blocking property to true, and buffer space is not available within the underlying protocol, this method blocks. If you are using a message-oriented Socket, and the size of buffer is greater than the maximum message size of the underlying protocol, no data is sent and Socket will throw a SocketException. If you are using a connection-oriented Socket, remoteEp is ignored.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.SendTo(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
            <summary>
            Sends data to a specific endpoint, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <param name="size">The number of bytes to send.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <param name="remoteEP">The <see cref="T:System.Net.EndPoint"/> representing the destination location for the data.</param>
            <returns>The number of bytes sent.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).<br>-or-</br><br>The remoteEP parameter is a null reference (Nothing).</br></exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified size exceeds the size of buffer.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>If you are using a connection-oriented protocol or a connected Socket using a connectionless protocol, remoteEP overrides the endpoint specified in RemoteEndPoint. If you are using an unconnected Socket with a connectionless protocol, this method sets the LocalEndPoint property of the current instance to a value determined by the protocol. You must subsequently receive data on the LocalEndPoint.</p>
            <p>This overload only requires you to provide a data buffer, SocketFlags, the number bytes to be sent and the remote EndPoint. The offset defaults to 0.</p>
            <p>Note   If you specify the DontRoute flag as the socketflags parameter, the data you are sending will not be routed. If you specify the OutOfBand flag as the socketflags parameter, only out-of-band (OOB) data is sent. If you set the Blocking property to true, and buffer space is not available within the underlying protocol, this method blocks. If you are using a message-oriented Socket, and the size of buffer is greater than the maximum message size of the underlying protocol, no data is sent and Socket will throw a SocketException. If you are using a connection-oriented Socket, remoteEp is ignored.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
            <summary>
            Sends data to a specific endpoint, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <param name="offset">The position in the data buffer to begin sending data.</param>
            <param name="size">The number of bytes to send.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <param name="remoteEP">The <see cref="T:System.Net.EndPoint"/> representing the destination location for the data.</param>
            <returns>The number of bytes sent.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).<br>-or-</br><br>The remoteEP parameter is a null reference (Nothing).</br></exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The offset or size parameter exceeds the size of buffer.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>If you are using a connection-oriented protocol or a connected Socket using a connectionless protocol, remoteEP overrides the endpoint specified in RemoteEndPoint. If you are using an unconnected Socket with a connectionless protocol, this method sets the LocalEndPoint property of the current instance to a value determined by the protocol. You must subsequently receive data on the LocalEndPoint.</p>
            <p><b>Note</b>   If you specify the DontRoute flag as the socketflags parameter, the data you are sending will not be routed. If you specify the OutOfBand flag as the socketflags parameter, only out-of-band (OOB) data is sent. If you set the Blocking property to true, and buffer space is not available within the underlying protocol, this method blocks. If you are using a message-oriented Socket, and the size of buffer is greater than the maximum message size of the underlying protocol, no data is sent and Socket will throw a SocketException. If you are using a connection-oriented Socket, remoteEp is ignored.</p>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Byte[])">
            <summary>
            Sets the specified option to the specified value.
            </summary>
            <param name="optionLevel">A <see cref="T:System.Net.Sockets.SocketOptionLevel"/> value. </param>
            <param name="optionName">A <see cref="T:System.Net.Sockets.SocketOptionName"/> value.</param>
            <param name="optionValue">A byte array representing the value of the option.</param>
            <exception cref="T:System.Net.Sockets.SocketException">The VirtualSocket has been closed.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>Socket options determine the behavior of the current Socket. Use this overload to set those Socket options that require a byte array as an option value.<br>Windows 98, Windows NT 4.0 Platform Note:  You must call the Bind method before using AddMembership as the optionName parameter.</br></remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)">
            <summary>
            Sets the specified option to the specified value.
            </summary>
            <param name="optionLevel">A <see cref="T:System.Net.Sockets.SocketOptionLevel"/> value. </param>
            <param name="optionName">A <see cref="T:System.Net.Sockets.SocketOptionName"/> value.</param>
            <param name="optionValue">A value of the option.</param>
            <exception cref="T:System.Net.Sockets.SocketException">The VirtualSocket has been closed.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>Socket options determine the behavior of the current Socket. For an option with a Boolean data type, specify a nonzero value to enable the option, and a zero value to disable the option. For an option with an integer data type, specify the appropriate value. Socket options are grouped by level of protocol support.<br>Windows 98, Windows NT 4.0 Platform Note:  You must call the Bind method before using AddMembership as the optionName parameter.</br></remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Object)">
            <summary>
            Sets the specified option to the specified value.
            </summary>
            <param name="optionLevel">A <see cref="T:System.Net.Sockets.SocketOptionLevel"/> value. </param>
            <param name="optionName">A <see cref="T:System.Net.Sockets.SocketOptionName"/> value.</param>
            <param name="optionValue">A LingerOption or MulticastOption containing the value of the option.</param>
            <exception cref="T:System.Net.Sockets.SocketException">The VirtualSocket has been closed.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="optionValue"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <remarks>Socket options determine the behavior of the current Socket. Use this overload to set those Socket options that require anything other than an integer or Boolean as an option value. For example, to set the Linger option, you must create an instance of LingerOption and pass it to SetSocketOption as the optionvalue parameter.<br>Windows 98, Windows NT 4.0 Platform Note:  You must call the Bind method before using AddMembership as the optionName parameter.</br></remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VirtualSocket.Shutdown(System.Net.Sockets.SocketShutdown)">
            <summary>
            Disables sends and receives on a VirtualSocket.
            </summary>
            <param name="how">The <see cref="T:System.Net.Sockets.SocketShutdown"/> value specifying the operation that will no longer be allowed.</param>
            <exception cref="T:System.Net.Sockets.SocketException">An error occurs while closing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>
            <p>Setting how to Send, specifies that subsequent calls to Send are not allowed. With TCP sockets, a FIN will be sent after all data is sent and acknowledged by the receiver.</p>
            <p>Setting how to Receive, specifies that subsequent calls to Receive are not allowed. This has no effect on lower protocol layers. For TCP sockets, the connection is reset if data is waiting to be received or if more data arrives after the Socket is disabled. For UDP sockets, datagrams are accepted and queued.</p>
            <p>Setting how to Both disables both sends and receives as described above.</p>
            <p>To finish closing the Socket, a call to Close must be made after the call to Shutdown. You should not attempt to reuse the Socket.</p>
            </remarks>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.VirtualSocket.m_InternalSocket">
            <summary>Holds the value of the <see cref="P:Org.Mentalis.Security.Ssl.VirtualSocket.InternalSocket"/> property.</summary>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.VirtualSocket.InternalSocket">
            <summary>
            Gets or sets the internal <see cref="T:System.Net.Sockets.Socket"/> value.
            </summary>
            <value>An instance of the Socket class.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.VirtualSocket.Blocking">
            <summary>
            Gets or sets a value that indicates whether the VirtualSocket is in blocking mode.
            </summary>
            <value><b>true</b> if the VirtualSocket will block; otherwise, <b>false</b>. The default is <b>true</b>.</value>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.VirtualSocket.AddressFamily">
            <summary>
            Gets the address family of the VirtualSocket.
            </summary>
            <value>One of the <see cref="P:Org.Mentalis.Security.Ssl.VirtualSocket.AddressFamily"/> values.</value>
            <remarks>AddressFamily specifies the addressing scheme that an instance of the VirtualSocket class can use. This property is read-only and is set when the VirtualSocket is created.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.VirtualSocket.Available">
            <summary>
            Gets the amount of data that has been received from the network and is available to be read.
            </summary>
            <value>The number of bytes of data that has been received from the network and are available to be read.</value>
            <remarks>If you are using a Stream VirtualSocket type, the available data is generally the total amount of data queued on the current instance. If you are using a message-oriented VirtualSocket type such as Dgram, the available data is the first message in the input queue.</remarks>
            <exception cref="T:System.Net.Sockets.SocketException">An error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.VirtualSocket.Connected">
            <summary>
            Gets a value indicating whether a VirtualSocket is connected to a remote resource.
            </summary>
            <value><b>true</b> if the VirtualSocket is connected to a remote resource; otherwise, <b>false</b>.</value>
            <remarks>Gets the connection state of the VirtualSocket. This property will return the latest known state of the VirtualSocket. When it returns <b>false</b>, the VirtualSocket was either never connected, or no longer connected. When it returns <b>true</b>, the VirtualSocket was connected at the time of the last I/O operation.<br><b>Note</b>   There is no guarantee that the VirtualSocket is still Connected even though Connected returns <b>true</b>.</br></remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.VirtualSocket.Handle">
            <summary>
            Gets the operating system handle for the VirtualSocket.
            </summary>
            <value>An <see cref="T:System.IntPtr"/> representing the operating system handle for the VirtualSocket.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.VirtualSocket.LocalEndPoint">
            <summary>
            Gets the local endpoint.
            </summary>
            <value>The local endpoint that the VirtualSocket is using for communications.</value>
            <remarks>The LocalEndPoint property contains the network connection information associated with the local network device. LocalEndPoint is set by calling the Bind method.</remarks>
            <exception cref="T:System.Net.Sockets.SocketException">An error occurs while reading the property.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.VirtualSocket.ProtocolType">
            <summary>
            Gets the protocol type of the VirtualSocket.
            </summary>
            <value>One of the <see cref="P:Org.Mentalis.Security.Ssl.VirtualSocket.ProtocolType"/> values.</value>
            <remarks>ProtocolType is set when the VirtualSocket is created, and specifies the protocol used by that VirtualSocket.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.VirtualSocket.RemoteEndPoint">
            <summary>
            Gets the remote endpoint.
            </summary>
            <value>The remote endpoint that the VirtualSocket is using for communications.</value>
            <remarks>The RemoteEndPoint property gets the network connection information associated with the remote host. RemoteEndPoint is set by VirtualSocket methods that establish a connection to a remote host.</remarks>
            <exception cref="T:System.Net.Sockets.SocketException">An error occurs while reading the property.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.VirtualSocket.SocketType">
            <summary>
            Gets the type of the VirtualSocket.
            </summary>
            <value>One of the <see cref="P:Org.Mentalis.Security.Ssl.VirtualSocket.SocketType"/> values.</value>
            <remarks>SocketType is set when the class is created.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.#ctor(System.Net.Sockets.AddressFamily,System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType)">
            <summary>
            Initializes a new instance of the SecureSocket class.
            </summary>
            <param name="addressFamily">One of the <see cref="T:System.Net.Sockets.AddressFamily"/> values.</param>
            <param name="socketType">One of the <see cref="T:System.Net.Sockets.SocketType"/> values.</param>
            <param name="protocolType">One of the <see cref="T:System.Net.Sockets.ProtocolType"/> values.</param>
            <exception cref="T:System.Net.Sockets.SocketException">The combination of addressFamily, socketType, and protocolType results in an invalid socket.</exception>
            <remarks>The SecureSocket will act like a normal Socket and will not use a secure transfer protocol.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.#ctor(System.Net.Sockets.AddressFamily,System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,Org.Mentalis.Security.Ssl.SecurityOptions)">
            <summary>
            Initializes a new instance of the SecureSocket class.
            </summary>
            <param name="addressFamily">One of the <see cref="T:System.Net.Sockets.AddressFamily"/> values.</param>
            <param name="socketType">One of the <see cref="T:System.Net.Sockets.SocketType"/> values.</param>
            <param name="protocolType">One of the <see cref="T:System.Net.Sockets.ProtocolType"/> values.</param>
            <param name="options">The <see cref="T:Org.Mentalis.Security.Ssl.SecurityOptions"/> to use.</param>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while changing the security protocol.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.#ctor(System.Net.Sockets.Socket,Org.Mentalis.Security.Ssl.SecurityOptions)">
            <summary>
            Initializes a new instance of the SecureSocket class.
            </summary>
            <param name="accepted">The accepted <see cref="T:System.Net.Sockets.Socket"/> instance.</param>
            <param name="options">The <see cref="T:Org.Mentalis.Security.Ssl.SecurityOptions"/> to use.</param>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while changing the security protocol.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.ChangeSecurityProtocol(Org.Mentalis.Security.Ssl.SecurityOptions)">
            <summary>
            Changes the security protocol. This method can only be used to 'upgrade' a connection from no-security to either SSL or TLS.
            </summary>
            <param name="options">The new <see cref="T:Org.Mentalis.Security.Ssl.SecurityOptions"/> parameters.</param>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while changing the security protocol.</exception>
            <remarks>
            Programs should only call this method if there is no active <see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.Connect(System.Net.EndPoint)"/>, <see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.Accept"/>, <see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.Send(System.Byte[])"/> or <see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.Receive(System.Byte[])"/>!
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Connect(System.Net.EndPoint)">
            <summary>
            Establishes a connection to a remote device and optionally negotiates a secure transport protocol.
            </summary>
            <param name="remoteEP">An <see cref="T:System.Net.EndPoint"/> that represents the remote device.</param>
            <exception cref="T:System.ArgumentNullException">The remoteEP parameter is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">The security negotiation failed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)">
            <summary>
            Begins an asynchronous request for a connection to a network device.
            </summary>
            <param name="remoteEP">An <see cref="T:System.Net.EndPoint"/> that represents the remote device.</param>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate.</param>
            <param name="state">An object that contains state information for this request.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous connection.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="remoteEP"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while creating the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.OnConnect(System.IAsyncResult)">
            <summary>
            Called then the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> connects to the remote host.
            </summary>
            <param name="ar">An <see cref="T:System.IAsyncResult"/> instance.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.EndConnect(System.IAsyncResult)">
            <summary>
            Ends a pending asynchronous connection request.
            </summary>
            <param name="asyncResult">The result of the asynchronous operation.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> was not returned by a call to the <see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)"/> method.</exception>
            <exception cref="T:System.InvalidOperationException"><see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.EndConnect(System.IAsyncResult)"/> was previously called for the asynchronous connection.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurred while negotiating the security protocol.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Accept">
            <summary>
            Creates a new <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> to handle an incoming connection request.
            </summary>
            <returns>A SecureSocket to handle an incoming connection request.</returns>
            <remarks>The returned <see cref="T:Org.Mentalis.Security.Ssl.VirtualSocket"/> can be cast to a SecureSocket if necessary.</remarks>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">Unable to create the credentials.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginAccept(System.AsyncCallback,System.Object)">
            <summary>
            Begins an asynchronous request to create a new <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> to accept an incoming connection request.
            </summary>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate.</param>
            <param name="state">An object containing state information for this request.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous SecureSocket creation.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while creating the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.EndAccept(System.IAsyncResult)">
            <summary>
            Ends an asynchronous request to create a new <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> to accept an incoming connection request.
            </summary>
            <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
            <returns>A SecureSocket to handle the incoming connection.</returns>
            <remarks>The returned <see cref="T:Org.Mentalis.Security.Ssl.VirtualSocket"/> can be cast to a SecureSocket if necessary.</remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> was not created by a call to <see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginAccept(System.AsyncCallback,System.Object)"/>.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">Unable to create the credentials -or- client authentication error.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Send(System.Byte[])">
            <summary>
            Sends data to a connected <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <returns>The number of bytes sent to the SecureSocket.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException">The specified size is zero.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">Unable to encrypt the data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Send(System.Byte[],System.Net.Sockets.SocketFlags)">
            <summary>
            Sends data to a connected <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <returns>The number of bytes sent to the SecureSocket.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException">The specified size is zero.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">Unable to encrypt the data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)">
            <summary>
            Sends data to a connected <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <param name="size">The number of bytes to send.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <returns>The number of bytes sent to the SecureSocket.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The size parameter exceeds the size of buffer.</exception>
            <exception cref="T:System.ArgumentException">The specified size is zero.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">Unable to encrypt the data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Send(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
            <summary>
            Sends data to a connected <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>, starting at the indicated location in the data.
            </summary>
            <param name="buffer">The data to be sent.</param>
            <param name="offset">The position in the data buffer to begin sending data.</param>
            <param name="size">The number of bytes to send.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <returns>The number of bytes sent to the SecureSocket.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The offset or size parameter exceeds the size of buffer.</exception>
            <exception cref="T:System.ArgumentException">The specified size is zero.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">Unable to encrypt the data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
            <summary>
            Sends data asynchronously to a connected <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.
            </summary>
            <param name="buffer">The data to send.</param>
            <param name="offset">The zero-based position in the buffer parameter at which to begin sending data.</param>
            <param name="size">The number of bytes to send.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate.</param>
            <param name="state">An object containing state information for this request.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous send.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified offset or size exceeds the size of buffer.</exception>
            <exception cref="T:System.ArgumentException">The specified size is zero.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurred while encrypting the data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.EndSend(System.IAsyncResult)">
            <summary>
            Ends a pending asynchronous send.
            </summary>
            <param name="asyncResult">The result of the asynchronous operation.</param>
            <returns>If successful, the number of bytes sent to the SecureSocket.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> was not returned by a call to the <see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)"/> method.</exception>
            <exception cref="T:System.InvalidOperationException"><see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.EndSend(System.IAsyncResult)"/> was previously called for the asynchronous read.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while communicating with the remote host.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Receive(System.Byte[])">
            <summary>
            Receives data from a connected <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> into a specific location of the receive buffer.
            </summary>
            <param name="buffer">The storage location for the received data.</param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurred while decrypting the received data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Receive(System.Byte[],System.Net.Sockets.SocketFlags)">
            <summary>
            Receives data from a connected <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> into a specific location of the receive buffer.
            </summary>
            <param name="buffer">The storage location for the received data.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurred while decrypting the received data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)">
            <summary>
            Receives data from a connected <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> into a specific location of the receive buffer.
            </summary>
            <param name="buffer">The storage location for the received data.</param>
            <param name="size">The number of bytes to receive.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> values.</param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The size exceeds the size of buffer.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurred while decrypting the received data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Receive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
            <summary>
            Receives data from a connected <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> into a specific location of the receive buffer.
            </summary>
            <param name="buffer">The storage location for the received data.</param>
            <param name="offset">The location in buffer to store the received data.</param>
            <param name="size">The number of bytes to receive.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The size exceeds the size of buffer.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurred while decrypting the received data.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
            <summary>
            Begins to asynchronously receive data from a connected SecureSocket.
            </summary>
            <param name="buffer">The storage location for the received data.</param>
            <param name="offset">The zero-based position in the buffer parameter at which to store the received data.</param>
            <param name="size">The number of bytes to receive.</param>
            <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags"/> values.</param>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate.</param>
            <param name="state">An object containing state information for this request.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous read.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">SecureSocket has been closed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The offset parameter is outside the bounds of buffer or size is either smaller or larger than the buffer size.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.EndReceive(System.IAsyncResult)">
            <summary>
            Ends a pending asynchronous read.
            </summary>
            <param name="asyncResult">Stores state information for this asynchronous operation as well as any user defined data.</param>
            <returns>The number of bytes received.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> was not returned by a call to the <see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)"/> method.</exception>
            <exception cref="T:System.InvalidOperationException"><see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.EndReceive(System.IAsyncResult)"/> was previously called for the asynchronous read.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while communicating with the remote host.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Shutdown(System.Net.Sockets.SocketShutdown)">
            <summary>
            Shuts down the secure connection.
            </summary>
            <exception cref="T:System.ObjectDisposedException">SecureSocket has been closed.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while shutting the secure connection down.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginShutdown(System.AsyncCallback,System.Object)">
            <summary>
            Begins an asynchronous request to shut the connection down.
            </summary>
            <param name="callback">The <see cref="T:System.AsyncCallback"/> delegate.</param>
            <param name="state">An object containing state information for this request.</param>
            <returns>An <see cref="T:System.IAsyncResult"/> that references the asynchronous shutdown.</returns>
            <exception cref="T:System.InvalidOperationException"><see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginShutdown(System.AsyncCallback,System.Object)"/> has already been called.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.OnShutdown(System.IAsyncResult)">
            <summary>
            Called when the shutdown data has been sent to the remote server.
            </summary>
            <param name="ar">An <see cref="T:System.IAsyncResult"/> instance.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.EndShutdown(System.IAsyncResult)">
            <summary>
            Ends an asynchronous request to shut the connection down.
            </summary>
            <param name="asyncResult">An <see cref="T:System.IAsyncResult"/> that references the asynchronous shutdown.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="asyncResult"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.InvalidOperationException"><see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginShutdown(System.AsyncCallback,System.Object)"/> has not been called first.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="asyncResult"/> has not been returned by a call to <see cref="M:Org.Mentalis.Security.Ssl.SecureSocket.BeginShutdown(System.AsyncCallback,System.Object)"/>.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.QueueRenegotiate">
            <summary>
            Queues a renegotiation request.
            </summary>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <remarks>
            Use the QueueRenegotiate function with caution. Some SSL/TLS clients or server do not support renegotiation.
            For instance, requesting a renegotiation in the middle of sending a HTTP request to a MS IIS server causes the connection to be shut down.
            Renegotiations should only be used when a small private key [512 bits] is used and the connection is active for a long period of time.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Close">
            <summary>
            Forces a SecureSocket connection to close.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Finalize">
            <summary>
            Frees resources used by the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> class.
            </summary>
            <remarks>
            The SecureSocket class finalizer calls the Close method to close the SecureSocket and free resources associated with the SecureSocket.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureSocket.Poll(System.Int32,System.Net.Sockets.SelectMode)">
            <summary>
            Determines the status of the VirtualSocket.
            </summary>
            <param name="microSeconds">The time to wait for a response, in microseconds.</param>
            <param name="mode">One of the <see cref="T:System.Net.Sockets.SelectMode"/> values.</param>
            <returns>See the Socket documentation for the return values.</returns>
            <remarks>This property is not supported for SSL/TLS sockets. It can only be used if the SecureProtocol is set to None. Asynchronous behavior in SSL or TLS mode can be achieved by calling the asynchronous methods.</remarks>
            <exception cref="T:System.NotSupportedException">The mode parameter is not one of the SelectMode values -or- the socket is in SSL or TLS mode.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <remarks>Set microSeconds parameter to a negative integer if you would like to wait indefinitely for a response.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureSocket.Available">
            <summary>
            Gets the amount of data that has been received from the network and is available to be read.
            </summary>
            <value>The number of bytes of data that has been received from the network and are available to be read.</value>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">An error occurs while interpreting the security data.</exception>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureSocket.LocalCertificate">
            <summary>
            Gets the local certificate.
            </summary>
            <value>An instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureSocket.RemoteCertificate">
            <summary>
            Gets the remote certificate.
            </summary>
            <value>An instance of the <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> class -or- a null reference (<b>Nothing</b> in Visual Basic) if no certificate has been received.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureSocket.SecureProtocol">
            <summary>
            Gets the security protocol in use.
            </summary>
            <value>A bitwise combination of the <see cref="P:Org.Mentalis.Security.Ssl.SecureSocket.SecureProtocol"/> values.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureSocket.Entity">
            <summary>
            Gets the credential type.
            </summary>
            <value>One of the <see cref="T:Org.Mentalis.Security.Ssl.ConnectionEnd"/> values.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureSocket.CommonName">
            <summary>
            Gets the common name of the remote host.
            </summary>
            <value>A string representing the common name of the remote host.</value>
            <remarks>
            The common name of the remote host is usually the domain name.
            </remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureSocket.VerificationType">
            <summary>
            Gets the credential verification type.
            </summary>
            <value>One of the <see cref="T:Org.Mentalis.Security.Ssl.CredentialVerification"/> values.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureSocket.Verifier">
            <summary>
            Gets the verify delegate.
            </summary>
            <value>A <see cref="T:Org.Mentalis.Security.Ssl.CertVerifyEventHandler"/> instance.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureSocket.SecurityFlags">
            <summary>
            Gets the security flags of the connection.
            </summary>
            <value>A bitwise combination of the <see cref="P:Org.Mentalis.Security.Ssl.SecureSocket.SecurityFlags"/> values.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureSocket.ActiveEncryption">
            <summary>
            Gets the active encryption cipher suite.
            </summary>
            <value>One of the <see cref="T:Org.Mentalis.Security.Ssl.SslAlgorithms"/> values.</value>
            <remarks>
            This value is properly initialized after the handshake of the SSL or TLS protocol. Currently, there's no way of knowing when a handshake is completed. However as soon as either a Send or a Receive returns, the handshake must be complete.
            <p>If SSL or TLS is not used, this property returns <b>SslAlgorithms.NONE</b>.</p>
            </remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureSocket.Blocking">
            <summary>
            Gets or sets a value that indicates whether the VirtualSocket is in blocking mode.
            </summary>
            <value><b>true</b> if the VirtualSocket will block; otherwise, <b>false</b>. The default is <b>true</b>.</value>
            <remarks>This property is not supported for SSL/TLS sockets. It can only be used if the SecureProtocol is set to None. Asynchronous behavior in SSL or TLS mode can be achieved by calling the asynchronous methods.</remarks>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the VirtualSocket.</exception>
            <exception cref="T:System.ObjectDisposedException">The VirtualSocket has been closed.</exception>
            <exception cref="T:System.NotSupportedException">Non-blocking sockets are not supported in SSL or TLS mode.</exception>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.SecureTcpClient">
            <summary>
            Provides secure client connections for TCP network services.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Ssl.SecureTcpClient"/> class.
            </summary>
            <remarks>
             The default constructor initializes a new SecureTcpClient. You must call the Connect method to establish a remote host connection.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.#ctor(System.Net.IPEndPoint)">
            <summary>
            Initializes a new instance of <see cref="T:Org.Mentalis.Security.Ssl.SecureTcpClient"/> bound to the specified local endpoint.
            </summary>
            <param name="localEP">The IPEndPoint to which you bind the TCP Socket.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="localEP"/> is null (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the Socket.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.#ctor(System.String,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Ssl.SecureTcpClient"/> class and connects to the specified port on the specified host.
            </summary>
            <param name="hostname">DNS name of the remote host to which you intend to connect.</param>
            <param name="port">Port number of the remote host to which you intend to connect.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="hostname"/> is null (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="port"/> is less than MinPort -or- <paramref name="port"/> is greater than MaxPort.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An error is encountered when resolving <paramref name="hostname"/><br>-or-</br><br>an error occurred while connecting to the remote host.</br></exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">The security negotiation failed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.#ctor(Org.Mentalis.Security.Ssl.SecurityOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Ssl.SecureTcpClient"/> class.
            </summary>
            <param name="options">The security options to use.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.#ctor(System.Net.IPEndPoint,Org.Mentalis.Security.Ssl.SecurityOptions)">
            <summary>
            Initializes a new instance of <see cref="T:Org.Mentalis.Security.Ssl.SecureTcpClient"/> bound to the specified local endpoint.
            </summary>
            <param name="localEP">The IPEndPoint to which you bind the TCP Socket.</param>
            <param name="options">The security options to use.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="localEP"/> is null (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the Socket.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.#ctor(System.String,System.Int32,Org.Mentalis.Security.Ssl.SecurityOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:Org.Mentalis.Security.Ssl.SecureTcpClient"/> class and connects to the specified port on the specified host.
            </summary>
            <param name="hostname">DNS name of the remote host to which you intend to connect.</param>
            <param name="port">Port number of the remote host to which you intend to connect.</param>
            <param name="options">The security options to use.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="hostname"/> is null (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="port"/> is less than MinPort -or- <paramref name="port"/> is greater than MaxPort.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An error is encountered when resolving <paramref name="hostname"/> -or- an error occurred while connecting to the remote host.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">The security negotiation failed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.#ctor(Org.Mentalis.Security.Ssl.SecureSocket)">
            <summary>
            Initializes a new instance of <see cref="T:Org.Mentalis.Security.Ssl.SecureTcpClient"/>.
            </summary>
            <param name="socket">The accepted socket.</param>
            <remarks>This constructor is used by the SecureTcpListener class.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.Connect(System.Net.IPEndPoint)">
            <summary>
            Connects the client to a remote TCP host using the specified remote network endpoint.
            </summary>
            <param name="remoteEP">The IP endpoint to which you intend to connect.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="remoteEP"/> parameter is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the Socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">The security negotiation failed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.Connect(System.Net.IPAddress,System.Int32)">
            <summary>
            Connects the client to a remote TCP host using the specified IP address and port number.
            </summary>
            <param name="address">The IP address of the host to which you intend to connect.</param>
            <param name="port">The port number to which you intend to connect.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="address"/> parameter is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="port"/> is less than MinPort -or- <paramref name="port"/> is greater than MaxPort.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the Socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">The security negotiation failed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.Connect(System.String,System.Int32)">
            <summary>
            Connects the client to the specified port on the specified host.
            </summary>
            <param name="hostname">The DNS name of the remote host to which you intend to connect.</param>
            <param name="port">The port number of the remote host to which you intend to connect.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="hostname"/> parameter is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="port"/> is less than MinPort -or- <paramref name="port"/> is greater than MaxPort.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the Socket.</exception>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> has been closed.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">The security negotiation failed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.GetStream">
            <summary>
            Returns the stream used to send and receive data.
            </summary>
            <returns>The underlying <see cref="T:Org.Mentalis.Security.Ssl.SecureNetworkStream"/>.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:Org.Mentalis.Security.Ssl.SecureTcpClient"/> has been closed.</exception>
            <exception cref="T:System.InvalidOperationException">The SecureTcpClient is not connected to a remote host.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.Close">
            <summary>
            Closes the TCP connection.
            </summary>
            <exception cref="T:System.Net.Sockets.SocketException">An error occurs while closing the Socket.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpClient.Dispose">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:Org.Mentalis.Security.Ssl.SecureTcpClient"/> and optionally releases the managed resources.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureTcpClient.m_Active">
            <summary>Holds the value of the <see cref="P:Org.Mentalis.Security.Ssl.SecureTcpClient.Active"/> property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureTcpClient.m_CleanedUp">
            <summary>Holds the value of the <see cref="P:Org.Mentalis.Security.Ssl.SecureTcpClient.CleanedUp"/> property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureTcpClient.m_Client">
            <summary>Holds the value of the <see cref="P:Org.Mentalis.Security.Ssl.SecureTcpClient.Client"/> property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureTcpClient.m_DataStream">
            <summary>Holds the value of the <see cref="P:Org.Mentalis.Security.Ssl.SecureTcpClient.DataStream"/> property.</summary>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpClient.LingerState">
            <summary>
            Gets or sets information about the sockets linger time.
            </summary>
            <value>A LingerOption.</value>
            <remarks>This property controls the length of time that the underlying Socket will remain open after a call to Close, when data remains to be sent. If the Enabled property of the LingerOption is true, then data will continue to be sent to the network with a time out of LingerOption.LingerTime seconds. Once the data is sent, or if the time-out expires, the connection is closed and any unsent data is lost. If the Enabled property of the LingerOption is false , then the connection will close, even if data remains to be sent.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpClient.NoDelay">
            <summary>
            Gets or sets a value that enables a delay when send or receive buffers are not full.
            </summary>
            <value><b>true</b> to disable a delay, otherwise <b>false</b>.</value>
            <remarks>When NoDelay is false, TCP does not send a packet over the network until it has collected a significant amount of outgoing data. Because of the amount of overhead in a TCP segment, sending small amounts of data would be very inefficient. However, situations do exist where you might want to send very small amounts of data or expect immediate responses from each packet you send. Your decision should weigh the relative importance of network efficiency versus application requirements.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpClient.ReceiveBufferSize">
            <summary>
            Gets or sets the size of the receive buffer.
            </summary>
            <value>The size of the receive buffer, in bytes.</value>
            <remarks>The ReceiveBufferSize property gets or sets the number of bytes that you are expecting to store in the receive buffer for each read operation.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpClient.ReceiveTimeout">
            <summary>
            Gets or sets the amount of time a <see cref="T:Org.Mentalis.Security.Ssl.SecureTcpClient"/> will wait to receive data once initiated.
            </summary>
            <value>The time-out value of the connection in milliseconds.</value>
            <remarks>The ReceiveTimeout property determines the amount of time a SecureTcpClient will wait to receive data after a read is initiated. This time is measured in milliseconds. The underlying Socket will throw a SocketException if a read is initiated, and the ReceiveTimeout expires.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpClient.SendBufferSize">
            <summary>
            Gets or sets the size of the send buffer.
            </summary>
            <value>The size of the send buffer, in bytes.</value>
            <remarks>The SendBufferSize property gets or sets the number of bytes to store in the send buffer for each send operation.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpClient.SendTimeout">
            <summary>
            Gets or sets the amount of time a SecureTcpClient will wait to receive confirmation after you initiate a send.
            </summary>
            <value>The send time-out value, in milliseconds.</value>
            <remarks>After you initiate a send, the underlying <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> returns the number of bytes actually sent to the host. The SendTimeout property determines the amount of time a TcpClient will wait before receiving the number of bytes returned by the SecureSocket class. The underlying SecureSocket will throw a SocketException if a send is initiated and the SendTimeout expires.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpClient.Client">
            <summary>
            Gets or sets the underlying <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.
            </summary>
            <value>The underlying Network Socket.</value>
            <remarks>SecureTcpClient creates a SecureSocket to send and receive data over a network. Classes deriving from SecureTcpClient can use this property to get or set this SecureSocket. Use the underlying SecureSocket returned from Client, if you require access beyond that which SecureTcpClient provides. You can also use Client to set the underlying SecureSocket to an existing SecureSocket. This might be useful if you want to take advantage of the simplicity of SecureTcpClient using a pre-existing SecureSocket.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpClient.Active">
            <summary>
            Gets or set a value that indicates whether a connection has been made.
            </summary>
            <value><b>true</b> if the connection has been made; otherwise, <b>false</b>.</value>
            <remarks>Classes deriving from SecureTcpClient can use this property to keep track of the underlying <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> connection state.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpClient.CleanedUp">
            <summary>
            Gets or sets a value that indicates whether the underlying SecureSocket has been closed or not.
            </summary>
            <value><b>true</b> if the underlying <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> has been closed, <b>false</b> otherwise.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpClient.DataStream">
            <summary>
            Gets or sets the underlying <see cref="T:Org.Mentalis.Security.Ssl.SecureNetworkStream"/> associated with this SecureTcpClient.
            </summary>
            <value>An instance of the SecureNetworkStream class.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.SecureTcpListener">
            <summary>
            Listens for secure connections from TCP network clients.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the SecureTcpListener class that listens on the specified port.
            </summary>
            <param name="port">The port on which to listen. If this number is 0, the system will assign an open port.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="port"/> is not between MinPort and MaxPort.</exception>
            <remarks><paramref name="port"/> specifies the local port number on which you intend to listen. When you call Start, SecureTcpListener uses the default network interface to listen for connections on the specified port.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.#ctor(System.Int32,Org.Mentalis.Security.Ssl.SecurityOptions)">
            <summary>
            Initializes a new instance of the SecureTcpListener class that listens on the specified port.
            </summary>
            <param name="port">The port on which to listen. If this number is 0, the system will assign an open port.</param>
            <param name="options">The security options to use.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The port parameter is not between MinPort and MaxPort.</exception>
            <remarks><paramref name="port"/> specifies the local port number on which you intend to listen. When you call Start, SecureTcpListener uses the default network interface to listen for connections on the specified port.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.#ctor(System.Net.IPAddress,System.Int32)">
            <summary>
            Initializes a new instance of the SecureTcpListener class that listens to the specified IP address and port.
            </summary>
            <param name="localaddr">The local IP address.</param>
            <param name="port">The port on which to listen.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="localaddr"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="port"/> is not between MinPort and MaxPort.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.#ctor(System.Net.IPAddress,System.Int32,Org.Mentalis.Security.Ssl.SecurityOptions)">
            <summary>
            Initializes a new instance of the SecureTcpListener class that listens to the specified IP address and port.
            </summary>
            <param name="localaddr">The local IP address.</param>
            <param name="port">The port on which to listen.</param>
            <param name="options">The security options to use.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="localaddr"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="port"/> is not between MinPort and MaxPort.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.#ctor(System.Net.IPEndPoint)">
            <summary>
            Initializes a new instance of the SecureTcpListener class with the specified local endpoint.
            </summary>
            <param name="localEP">The local endpoint to which to bind the listener Socket.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="localEP"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <remarks><paramref name="localEP"/> specifies the local <see cref="T:System.Net.IPEndPoint"/>. This constructor creates an underlying SecureSocket, and binds that SecureSocket to <paramref name="localEP"/>. If you call the Start method, TcpListener will listen for connections on <paramref name="localEP"/>.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.#ctor(System.Net.IPEndPoint,Org.Mentalis.Security.Ssl.SecurityOptions)">
            <summary>
            Initializes a new instance of the SecureTcpListener class with the specified local endpoint.
            </summary>
            <param name="localEP">The local endpoint to which to bind the listener Socket.</param>
            <param name="options">The security options to use.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="localEP"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <remarks><paramref name="localEP"/> specifies the local <see cref="T:System.Net.IPEndPoint"/>. This constructor creates an underlying SecureSocket, and binds that SecureSocket to <paramref name="localEP"/>. If you call the Start method, TcpListener will listen for connections on <paramref name="localEP"/>.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.#ctor(Org.Mentalis.Security.Ssl.SecureSocket,Org.Mentalis.Security.Ssl.SecurityOptions)">
            <summary>
            Initializes a new instance of the SecureTcpListener class with the specified listener SecureSocket.
            </summary>
            <param name="listener">The listener <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.</param>
            <param name="options">The security options to use.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="listener"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An error occurs while reading the LocalEndPoint property.</exception>
            <exception cref="T:System.ObjectDisposedException">The SecureSocket has been closed.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.AcceptSocket">
            <summary>
            Accepts a pending connection request.
            </summary>
            <returns>A <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> used to send and receive data.</returns>
            <exception cref="T:System.InvalidOperationException">The listener has not been started with a call to Start.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">Unable to create the SSPI credentials.</exception>
            <remarks>AcceptSocket returns a SecureSocket that you can use to send and receive data. This SecureSocket is initialized with the IP address and port number of the remote machine. You can use any of the Send and Receive methods available in the Socket class to communicate with the remote machine.<br><b>Note</b>   When you finish using the Socket, be sure to call its Close method.</br><br><b>Note</b>   If your application is relatively simple, consider using the AcceptTcpClient method rather than AcceptSocket. SecureTcpClient provides you with simple methods for sending and receiving data over a network.</br></remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.AcceptTcpClient">
            <summary>
            Accepts a pending connection request.
            </summary>
            <returns>A SecureTcpClient used to send and receive data.</returns>
            <exception cref="T:System.InvalidOperationException">The listener has not been started with a call to Start.</exception>
            <exception cref="T:System.Net.Sockets.SocketException">An operating system error occurs while accessing the SecureSocket.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">Unable to create the SSPI credentials.</exception>
            <remarks>
            AcceptTcpClient returns a SecureTcpClient that you can use to send and receive data. Use SecureTcpClient.GetStream to obtain the underlying SecureNetworkStream of the SecureTcpClient. SecureNetworkStream inherits from Stream, which provides a rich collection of methods and properties for network communications.
            <br><b>Note</b>   When you are through with the returned SecureTcpClient, be sure to call it's Close method.</br>
            <br><b>Note</b>   If you want greater flexibility than a SecureTcpClient offers, consider using AcceptSocket.</br>
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.Pending">
            <summary>
            Determines if there are pending connection requests.
            </summary>
            <returns><b>true</b> if connections are pending; otherwise, <b>false</b>.</returns>
            <exception cref="T:System.InvalidOperationException">The listener has not been started with a call to Start.</exception>
            <remarks>Pending polls for the underlying <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> to determine if there are pending connections.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.Start">
            <summary>
            Starts listening to network requests.
            </summary>
            <exception cref="T:System.Net.Sockets.SocketException">An error occurs while opening the network socket.</exception>
            <exception cref="T:Org.Mentalis.Security.SecurityException">Unable to create the SSPI credentials.</exception>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecureTcpListener.Stop">
            <summary>
            Closes the listener.
            </summary>
            <remarks>Stop closes the listener.</remarks>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureTcpListener.m_LocalEndpoint">
            <summary>Holds the value if the <see cref="P:Org.Mentalis.Security.Ssl.SecureTcpListener.LocalEndpoint"/> property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureTcpListener.m_Server">
            <summary>Holds the value if the <see cref="P:Org.Mentalis.Security.Ssl.SecureTcpListener.Server"/> property.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureTcpListener.m_SecurityOptions">
            <summary>Holds the value if the <see cref="P:Org.Mentalis.Security.Ssl.SecureTcpListener.SecurityOptions"/> property.</summary>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpListener.Active">
            <summary>
            Gets a value that indicates whether SecureTcpListener is actively listening for client connections.
            </summary>
            <value><b>true</b> if SecureTcpListener is actively listening; otherwise <b>false</b>.</value>
            <remarks>Classes deriving from SecureTcpListener can use this property to keep track of the underlying <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> connection state.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpListener.LocalEndpoint">
            <summary>
            Gets the underlying <see cref="T:System.Net.EndPoint"/> of the current SecureTcpListener.
            </summary>
            <value>An instance of the EndPoint class used to bind the underlying <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.</value>
            <remarks>You can use LocalEndpoint if you want to identify the local network interface and port number being used to listen for incoming client connection requests.<br><b>Note</b>   To obtain address and port information, you must explicitly cast LocalEndpoint to return an <see cref="T:System.Net.IPEndPoint"/>. You can then use the various methods within IPEndPoint to retrieve the desired information.</br></remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpListener.Server">
            <summary>
            Gets the underlying <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.
            </summary>
            <value>An instance of the SecureSocket class that provides the underlying network socket.</value>
            <remarks>SecureTcpListener creates a SecureSocket to listen for incoming client connection requests. Classes deriving from SecureTcpListener can use this property to get this Socket. Use the underlying SecureSocket returned by the Server property if you require access beyond that which SecureTcpListener provides.<br><b>Note</b>    Server only returns the SecureSocket used to listen for incoming client connection requests. Use the AcceptSocket method to accept a pending connection request and obtain a SecureSocket for sending and receiving data. You can also use the AcceptTcpClient method to accept a pending connection request and obtain a SecureTcpClient for sending and receiving data.</br></remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecureTcpListener.SecurityOptions">
            <summary>
            Gets the security options that are used for incoming connections.
            </summary>
            <value>A <see cref="P:Org.Mentalis.Security.Ssl.SecureTcpListener.SecurityOptions"/> instance.</value>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.SecurityOptions">
            <summary>
            Represents the security options that should be used when connecting to a secure server, or when accepting secure connections.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecurityOptions.#ctor(Org.Mentalis.Security.Ssl.SecureProtocol,Org.Mentalis.Security.Certificates.Certificate,Org.Mentalis.Security.Ssl.ConnectionEnd,Org.Mentalis.Security.Ssl.CredentialVerification,Org.Mentalis.Security.Ssl.CertVerifyEventHandler,System.String,Org.Mentalis.Security.Ssl.SecurityFlags,Org.Mentalis.Security.Ssl.SslAlgorithms,Org.Mentalis.Security.Ssl.CertRequestEventHandler)">
            <summary>
            Initializes a new instance of the SecurityOptions class.
            </summary>
            <param name="protocol">One of the <see cref="T:Org.Mentalis.Security.Ssl.SecureProtocol"/> values.</param>
            <param name="cert">A <see cref="P:Org.Mentalis.Security.Ssl.SecurityOptions.Certificate"/> instance.</param>
            <param name="entity">One of the <see cref="T:Org.Mentalis.Security.Ssl.ConnectionEnd"/> values.</param>
            <param name="verifyType">One of the <see cref="T:Org.Mentalis.Security.Ssl.CredentialVerification"/> values.</param>
            <param name="verifier">The <see cref="T:Org.Mentalis.Security.Ssl.CertVerifyEventHandler"/> delegate.</param>
            <param name="commonName">The common name of the remote computer. This is usually a domain name.</param>
            <param name="flags">A bitwise combination of the <see cref="T:Org.Mentalis.Security.Ssl.SecurityFlags"/> values.</param>
            <param name="allowed">A bitwise combination of the <see cref="T:Org.Mentalis.Security.Ssl.SslAlgorithms"/> values.</param>
            <param name="requestHandler">The <see cref="T:Org.Mentalis.Security.Ssl.CertRequestEventHandler"/> delegate.</param>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecurityOptions.#ctor(Org.Mentalis.Security.Ssl.SecureProtocol,Org.Mentalis.Security.Certificates.Certificate,Org.Mentalis.Security.Ssl.ConnectionEnd)">
            <summary>
            Initializes a new instance of the SecurityOptions class.
            </summary>
            <param name="protocol">One of the <see cref="T:Org.Mentalis.Security.Ssl.SecureProtocol"/> values.</param>
            <param name="cert">A <see cref="P:Org.Mentalis.Security.Ssl.SecurityOptions.Certificate"/> instance.</param>
            <param name="entity">One of the <see cref="T:Org.Mentalis.Security.Ssl.ConnectionEnd"/> values.</param>
            <remarks>
            All other members of the structure will be instantiated with default values.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecurityOptions.#ctor(Org.Mentalis.Security.Ssl.SecureProtocol)">
            <summary>
            Initializes a new instance of the SecurityOptions structure.
            </summary>
            <param name="protocol">One of the <see cref="T:Org.Mentalis.Security.Ssl.SecureProtocol"/> values.</param>
            <remarks>
            All other members of the structure will be instantiated with default values.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.SecurityOptions.Clone">
            <summary>
            Creates a shallow copy of this <see cref="T:Org.Mentalis.Security.Ssl.SecurityOptions"/> object.
            </summary>
            <returns>A shallow copy of this object.</returns>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityOptions.m_Protocol">
            <summary>One of the <see cref="T:Org.Mentalis.Security.Ssl.SecureProtocol"/> values.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityOptions.m_Certificate">
            <summary>A <see cref="P:Org.Mentalis.Security.Ssl.SecurityOptions.Certificate"/> instance.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityOptions.m_Entity">
            <summary>One of the <see cref="T:Org.Mentalis.Security.Ssl.ConnectionEnd"/> values.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityOptions.m_VerificationType">
            <summary>One of the <see cref="T:Org.Mentalis.Security.Ssl.CredentialVerification"/> values.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityOptions.m_Verifier">
            <summary>The <see cref="T:Org.Mentalis.Security.Ssl.CertVerifyEventHandler"/> delegate.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityOptions.m_RequestHandler">
            <summary>The <see cref="T:Org.Mentalis.Security.Ssl.CertRequestEventHandler"/> delegate.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityOptions.m_CommonName">
            <summary>The common name of the remote computer. This is usually a domain name.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityOptions.m_Flags">
            <summary>A bitwise combination of the <see cref="T:Org.Mentalis.Security.Ssl.SecurityFlags"/> values.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityOptions.m_AllowedAlgorithms">
            <summary>A bitwise combination of the <see cref="T:Org.Mentalis.Security.Ssl.SslAlgorithms"/> values.</summary>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecurityOptions.Protocol">
            <summary>
            Gets or sets the secure protocol that the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> should use.
            </summary>
            <value>A bitwise combination of the <see cref="T:Org.Mentalis.Security.Ssl.SecureProtocol"/> values.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecurityOptions.Certificate">
            <summary>
            Gets or sets the <see cref="P:Org.Mentalis.Security.Ssl.SecurityOptions.Certificate"/> that the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> should use.
            </summary>
            <value>An instance of the Certificate class.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecurityOptions.Entity">
            <summary>
            Gets or sets a value that indicates whether the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> is a server or a client socket.
            </summary>
            <value>One of the <see cref="T:Org.Mentalis.Security.Ssl.ConnectionEnd"/> values.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecurityOptions.VerificationType">
            <summary>
            Gets or sets a value that indicates how the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> will try to verify the peer <see cref="P:Org.Mentalis.Security.Ssl.SecurityOptions.Certificate"/>.
            </summary>
            <value>One of the <see cref="T:Org.Mentalis.Security.Ssl.CredentialVerification"/> values.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecurityOptions.Verifier">
            <summary>
            Gets or sets a delegate that will be called when the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> receives the peer certificate.
            </summary>
            <value>A <see cref="T:Org.Mentalis.Security.Ssl.CertVerifyEventHandler"/> delegate.</value>
            <remarks>This member will only be used if the <see cref="P:Org.Mentalis.Security.Ssl.SecurityOptions.VerificationType"/> is set to Manual.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecurityOptions.RequestHandler">
            <summary>
            Gets or sets a delegate that will be called when the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> receives a request for a client certificate.
            </summary>
            <value>A <see cref="T:Org.Mentalis.Security.Ssl.CertRequestEventHandler"/> delegate.</value>
            <remarks>This member will only be used if no <see cref="P:Org.Mentalis.Security.Ssl.SecurityOptions.Certificate"/> is specified in the Certificate property of this class.</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecurityOptions.CommonName">
            <summary>
            Gets or sets the common name of the peer.
            </summary>
            <value>A <see cref="T:System.String"/> that holds the common name of the peer. This is usually a domain name.</value>
            <remarks>Servers that do not use client authentication should set this member to a null reference (<b>Nothing</b> in Visual Basic).</remarks>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecurityOptions.Flags">
            <summary>
            Gets or sets the security flags associated with the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/>.
            </summary>
            <value>A bitwise combination of the <see cref="T:Org.Mentalis.Security.Ssl.SecurityFlags"/> values.</value>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.SecurityOptions.AllowedAlgorithms">
            <summary>
            Gets or sets the list of algorithms that can be used to encrypt and compress data.
            </summary>
            <value>A bitwise combination of the <see cref="T:Org.Mentalis.Security.Ssl.SslAlgorithms"/> values.</value>
            <remarks>
            This member should always contain at least one encryption algorithm and one compression algorithm.
            Currently, the only defined compression algorithm is SslAlgorithms.NULL_COMPRESSION.
            The default setting for this member is SslAlgorithms.ALL.
            </remarks>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.SecureProtocol">
            <summary>
            Specifies the type of security protocol that an instance of the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> class can use.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureProtocol.None">
            <summary>No security protocol will be used. The SecureSocket will act as a normal Socket.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureProtocol.Ssl3">
            <summary>SSLv3 will be used to authenticate the client and encrypt the data.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecureProtocol.Tls1">
            <summary>TLS will be used to authenticate the client and encrypt the data.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.SecurityFlags">
            <summary>
            Specifies the different security flags that an instance of the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> class can use.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityFlags.Default">
            <summary>No special behavior is required.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityFlags.MutualAuthentication">
            <summary>
            Client authentication is required. This flag only has an effect on server sockets.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityFlags.DontSendEmptyRecord">
            <summary>
            To avoid a certain CBC IV attack, the Security Library sends an empty message after the handshake and before the actual application payload.
            Unfortunately, some broken implementations do not support empty packets, so sending these empty packets can be turned off
            by specifying the DontSendEmptyRecord flag.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SecurityFlags.IgnoreMaxProtocol">
            <summary>
            Setting this flag will allow a client to issue a SSLv3.0 version number as latest version supported in the premaster secret, even when TLSv1.0 (version 3.1) was announced in the client hello. Normally this is forbidden to prevent version rollback attacks.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.ConnectionEnd">
            <summary>
            Specifies the different connection end values.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.ConnectionEnd.Server">
            <summary>The <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> is a server socket.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.ConnectionEnd.Client">
            <summary>The <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> is a client socket.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.SslAlgorithms">
            <summary>
            Specifies the different cipher suites and compression algorithms.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.NONE">
            <summary>No encryption or compression.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.RSA_RC4_40_MD5">
            <summary>RC4 encryption with a 40 bit key and an MD5 hash.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.RSA_RC4_128_MD5">
            <summary>RC4 encryption with a 128 bit key and an MD5 hash.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.RSA_RC4_128_SHA">
            <summary>RC4 encryption with a 128 bit key and a SHA1 hash.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.RSA_RC2_40_MD5">
            <summary>RC2 encryption with a 40 bit key and an MD5 hash.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.RSA_DES_56_SHA">
            <summary>DES encryption with a 56 bit key and a SHA1 hash.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.RSA_3DES_168_SHA">
            <summary>Triple DES encryption with a 168 bit key and a SHA1 hash.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.RSA_DES_40_SHA">
            <summary>DES encryption with a 40 bit key and a SHA1 hash.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.RSA_AES_128_SHA">
            <summary>AES encryption with a 128 bit key and a SHA1 hash.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.RSA_AES_256_SHA">
            <summary>AES encryption with a 256 bit key and a SHA1 hash.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.SECURE_CIPHERS">
            <summary>Cipher Suites that are currently considered secure. As a convenience, this value also specifies NULL compression.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.NULL_COMPRESSION">
            <summary>No compression. This value must always be specified; it is currently the only supported compression algorithm.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.SslAlgorithms.ALL">
            <summary>All encryption and compression algorithms.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.CredentialVerification">
            <summary>
            Specifies the method used to verify the remote credential.
            </summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.CredentialVerification.Manual">
            <summary>The remote certificate will be manually verified. When an incoming connection is accepted, the SecureSocket will raise a CertVerification event. This is the recommended credential verification method.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.CredentialVerification.Auto">
            <summary>The remote certificate will be automatically verified by the crypto API.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.CredentialVerification.AutoWithoutCName">
            <summary>The remote certificate will be automatically verified by the crypto API, but the common name of the server will not be checked.</summary>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.CredentialVerification.None">
            <summary>The remote certificate will not be verified. This method is not secure and should only be used for debugging purposes.</summary>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.CertVerifyEventHandler">
            <summary>
            References the method to be called when the remote certificate should be verified.
            </summary>
            <param name="socket">The <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> that received the certificate to verify.</param>
            <param name="remote">The <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> of the remote party to verify.</param>
            <param name="chain">The <see cref="T:Org.Mentalis.Security.Certificates.CertificateChain"/> associated with the remote certificate.</param>
            <param name="e">A <see cref="T:Org.Mentalis.Security.Ssl.VerifyEventArgs"/> instance used to (in)validate the certificate.</param>
            <remarks>If an error is thrown by the code in the delegate, the SecureSocket will close the connection.</remarks>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.CertRequestEventHandler">
            <summary>
            References the method to be called when the <see cref="T:Org.Mentalis.Security.Ssl.SecureSocket"/> receives a <see cref="T:Org.Mentalis.Security.Certificates.Certificate"/> request from the peer.
            </summary>
            <param name="socket">The SecureSocket that received the certificate request.</param>
            <param name="acceptable">An instance of the <see cref="T:Org.Mentalis.Security.Certificates.DistinguishedNameList"/> class that contains a list of relative distinguished names. If the client chooses to send a certificate to the remote server, the CA that signed this certificate should be in the list of distinguished names.</param>
            <param name="e">A <see cref="T:Org.Mentalis.Security.Ssl.RequestEventArgs"/> instance used to pass the certificate to the SecureSocket.</param>
            <remarks>
            <p>This delegate is only used by client sockets</p>
            <p>If an error is thrown by the code in the delegate, the SecureSocket will close the connection.</p>
            </remarks>
        </member>
        <member name="T:Org.Mentalis.Security.Ssl.VerifyEventArgs">
            <summary>
            Provides data for the Verify event.
            </summary>
            <remarks>
            When the CertVerifyEventHandler delegate is called, one of its parameters is an instance of this class. If the certificate should not be accepted and the connection should be closed, simply set the Valid property to <b>false</b> and return from the callback.
            </remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VerifyEventArgs.#ctor">
            <summary>
            Initializes a new VerifyEventArgs instance.
            </summary>
            <remarks>The initial value of the <see cref="P:Org.Mentalis.Security.Ssl.VerifyEventArgs.Valid"/> property will be <b>true</b>.</remarks>
        </member>
        <member name="M:Org.Mentalis.Security.Ssl.VerifyEventArgs.#ctor(System.Boolean)">
            <summary>
            Initializes a new VerifyEventArgs instance.
            </summary>
            <param name="valid">The initial value of the <see cref="P:Org.Mentalis.Security.Ssl.VerifyEventArgs.Valid"/> property.</param>
        </member>
        <member name="F:Org.Mentalis.Security.Ssl.VerifyEventArgs.m_Valid">
            <summary>
            Holds the value of the <see cref="P:Org.Mentalis.Security.Ssl.VerifyEventArgs.Valid"/> property.
            </summary>
        </member>
        <member name="P:Org.Mentalis.Security.Ssl.VerifyEventArgs.Valid">
            <summary>
            Gets or sets whether the certificate should be accepted as a valid certficate or not.
            </summary>
            <value><b>true</b> if the certificate is valid, otherwise <b>false</b>.</value>
        </member>
        <member name="T:Org.Mentalis.Security.SecurityConstants">
            <summary>
            Defines the external methods of the CryptoAPI and SCHANNEL API.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.SecurityConstants.#ctor">
            <summary>
            Defeat instantiation of this class.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.SecurityException">
            <summary>
            The exception that is thrown when a security error is detected.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.SecurityException.#ctor">
            <summary>
            Initializes a new instance of the SecurityException class with default properties.
            </summary>
        </member>
        <member name="M:Org.Mentalis.Security.SecurityException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the SecurityException class with a specified error message.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
        </member>
        <member name="M:Org.Mentalis.Security.SecurityException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the SecurityException class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="inner">The exception that is the cause of the current exception. If the <paramref name="inner"/> parameter is not a null reference (<b>Nothing</b> in Visual Basic), the current exception is raised in a catch block that handles the inner exception.</param>
        </member>
        <member name="T:Org.Mentalis.Security.DataBlob">
            <summary>
            The DataBlob structure contains an array of bytes. 
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.CertificateInfo">
            <summary>
            The CertificateInfo structure contains a certificate's information.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.CERT_PUBLIC_KEY_INFO">
            <summary>
            The CERT_PUBLIC_KEY_INFO structure contains a public key and its algorithm.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.CertificateContext">
            <summary>
            The CertificateContext structure contains both the encoded and decoded representations of a certificate.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.TrustListUsage">
            <summary>
            The TrustListUsage structure contains an array of Object Identifiers (OIDs) for Certificate Trust List (CTL) extensions. CTL_USAGE structures are used in functions that search for CTLs for specific uses.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.CertificateExtension">
            <summary>
            The CertificateExtension structure contains the extension information for a certificate, Certificate Revocation List (CRL) or Certificate Trust List (CTL).
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.CertificateNameValue">
            <summary>
            The CertificateNameValue structure contains a relative distinguished name (RDN) attribute value. It is like the CERT_RDN_ATTR structure, except that it does not include the object identifier member that is a member of CERT_RDN_ATTR. As in CERT_RDN_ATTR, the interpretation of the Value member depends on dwValueType.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.CertificateNameInfo">
            <summary>
            The CertificateNameInfo structure contains subject or issuer names. The information is represented as an array of CERT_RDN structures.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.RelativeDistinguishedName">
            <summary>
            The RelativeDistinguishedName structure contains a relative distinguished name (RDN) consisting of an array of CERT_RDN_ATTR structures.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.RdnAttribute">
            <summary>
            The RdnAttribute structure contains a single attribute of a relative distinguished name (RDN). A whole RDN is expressed in a CERT_RDN structure that contains an array of CERT_RDN_ATTR structures.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.ChainParameters">
            <summary>
            The ChainParameters structure establishing the searching and matching criteria to be used in building a certificate chain.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.ChainPolicyStatus">
            <summary>
            The ChainPolicyStatus structure holds certificate chain status information returned by CertVerifyCertificateChainPolicy from the verification of certificate chains.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.ChainPolicyParameters">
            <summary>
            The ChainPolicyParameters structure contains information used in CertVerifyCertificateChainPolicy to establish policy criteria for the verification of certificate chains.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.SslPolicyParameters">
            <summary>
            The SslPolicyParameters structure contains extra policy options.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.CRYPT_KEY_PROV_INFO">
            <summary>
            The CRYPT_KEY_PROV_INFO structure contains fields that are passed as the arguments to CryptAcquireContext to acquire a handle to a particular key container within a particular cryptographic service provider (CSP), or to create or destroy a key container.
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.PUBLIC_KEY_BLOB">
            <summary>
            Union of the PUBLICKEYSTRUC [=BLOBHEADER] and RSAPUBKEY structures 
            </summary>
        </member>
        <member name="T:Org.Mentalis.Security.SspiProvider">
            <summary>
            Defines the external methods of the CryptoAPI.
            </summary>
        </member>
    </members>
</doc>
